BLOOMINGTON, Ind. -- Purdue junior forward Vincent Edwards was coming off the first scoreless game of his career.

"He was 0 for 7 against Maryland but he did some good things and helped us win," Purdue coach Matt Painter said. "(Thursday night) he helped us win a different way. He was very consistent. He nailed a couple of 3-point shots in the first half and really got it going."

Edwards scored 26 points and grabbed eight rebounds to lead No. 16 Purdue past Indiana 69-64 in a Big Ten game at Simon Skjodt Assembly Hall.

Edwards said he wasn't extra motivated because of the scoreless game.

"I was just running the floor and trying to do anything to help the team win," Edwards said. "Somehow I kept getting open. My teammates did a good job of finding me."

Sophomore forward Caleb Swanigan picked up his NCAA-leading 21st double-double with 16 points and 14 rebounds for Purdue (20-5, 9-3 Big Ten).

Sophomore center Thomas Bryant led the Hoosiers (15-10, 5-7) with 23 points on 8-of-12 shooting.

The score was tied eight times and there were 10 lead changes. Purdue's largest lead was six points in the first five minutes of the first half. Indiana's largest lead was seven points in the first two minutes of the second half.

"We could never got over the hump offensively because we didn't shoot it well (38.6 percent)," Indiana coach Tom Crean said. "I'm highly disappointed but we know we lost to a great team."

Painter said the victory was bigger than just the rivalry win.

"Any time you win on the road, it's going to help you," Painter said. "We were able to grind out this win. It was good to see these guys win with their defense and hit their free throws."

Purdue made 17 of 24 free throws.

Carsen Edwards hit one of two free throws with 9.2 seconds left to give Purdue a 68-64 lead. After Indiana's Robert Johnson missed a 3-point shot, Vincent Edwards was fouled with less that a second left and hit one of two free throws for the final margin.

Josh Newkirk sank a 3-pointer to give Indiana a 57-55 lead with 4:57 to go. However, Purdue responded by scoring the next six points to take 61-57 lead.

After the Hoosiers closed the deficit to 61-59, Swanigan converted a three-point play with 1:02 to go to put Purdue ahead 64-59.

Bryant and Swanigan were each called for a foul when Bryant drove to basket. One official called a block and the other called a charge so it was ruled a double foul. That was the fifth foul for each. Bryant's basket didn't count.

It was a momentum changer, Crean said.

Indiana retained possession and Johnson was fouled and hit both free throws to cut the deficit to 64-61 with 38 seconds left.

Indiana guard James Blackmon Jr., who had missed the last three games with a lower leg injury, finished with 11 points on 3-of-14 shooting. The in-state rivals meet again Feb. 28 at Purdue.

"It's tough to swallow but we got a lot of games left and we just got to have a short memory," Blackmon said. "We get a chance to play them again and we know their tendencies."

Blackmon said the Hoosiers have to take better care of the basketball when they meet again. Indiana had 14 turnovers, two more than Purdue.

NOTES: Purdue has been ranked in the AP Top 25 in each of the last 33 polls, the seventh-longest active streak nationally and longest streak in the Big Ten. Entering the game, Purdue has shot better on the road from the 3-point line (.447) and free throw line (.813) than it has at home (.377) on 3s and (.749) on free throws. ... This was the Boilermakers' fourth road game in the last five contests. Purdue hosts Rutgers on Tuesday night. Indiana hosts Michigan on Sunday.