Victor Oladipo posted 21 points, seven rebounds and six steals as No. 7 Indiana held off 13th-ranked Michigan State, 75-70, in Big Ten action.
Christian Watford scored 12 points with six rebounds, while Kevin Ferrell added 11 points for the Hoosiers (18-2, 6-1 Big Ten), who have won three straight since losing to Wisconsin.
"If you're going to win over the long haul, you've got to find ways," said Indiana head coach Tom Crean. "Our guys had great will. I thought Watford was excellent in the second half because they were picking on him in the first half and he responded. He responded in a big way and played through a lot of things."
Gary Harris scored 21 points and Adreian Payne added 18 with nine rebounds for the Spartans (17-4, 6-2), who had a six-game winning streak snapped.
"We did some really good things and we did some really poor things," said Michigan State head coach Tom Izzo. "Our whole plan was to keep them out of the lane and not turn the ball over, and we didn't do either one of those things very well."
Harris' dunk with 3:32 to play cut the Spartans' deficit to 71-70, but Watford followed with a free throw and, following misses at each end, Cody Zeller put in a layup with 1:38 left for a 74-70 lead.
Harris then missed a 3-pointer and Oladipo missed a layup, but Payne was called for an offensive foul while charging on a layup and Indiana got the ball back with 14.3 to play.
A foul call on Harris on an in-bounds play led to Jordan Hulls hitting one-of- two from the line for a five-point lead.
Indiana then played a smothering defense and Payne's desperation 3-pointer was way off and Indiana walked away with the win.
The game was tight early until Indiana went on a 6-0 run for a 28-19 lead as Ferrell capped the run with just under eight minutes to play.
Michigan State answered with a 12-2 surge to get the lead back, but Will Sheehey and Ferrell hit consecutive 3-pointers to end the half and give the Hoosiers a 44-38 lead.
Indiana led throughout the second half, but it was never by more than seven points as Michigan State hung around to keep the game tight until the final buzzer.
Michigan State plays host to Illinois on Thursday ... Indiana plays at Purdue on Wednesday ... Indiana owns a 67-48 lead in the series and has won the past two games ... Indiana shot 50.9 percent from the floor, while Michigan State made 45 percent of its attempts.