ANN ARBOR, Mich. -- With Arizona's No. 1 ranking hanging precariously in the balance, T.J. McConnell hustled over to the corner for the biggest offensive rebound of the game.
Then Nick Johnson drew a foul, and the Wildcats overtook Michigan at the free throw line.
Johnson made six free throws over the final 25 seconds, and Arizona held on for a 72-70 victory over the Wolverines on Saturday after rallying from an 11-point deficit in the second half.
Michigan led by one with under a minute to go, but McConnell was able to rebound his own miss to keep a crucial possession alive.
Johnson drew a foul on a drive with 24.6 seconds left, and he put the Wildcats ahead to stay.
"This was as quality of a win as you can have, in my opinion, in the country," Arizona coach Sean Miller said. "I felt like today — we're going to be better if we won, we're going to be better if we lost."
Michigan (6-4) certainly gave the Wildcats a test, leading for most of the game. Arizona finished with 17 offensive rebounds, but that translated into only a 34-28 scoring advantage in the paint.
If the Wolverines had been able to come up with McConnell's late miss, they might have been the ones shooting free throws at the end to put the game away. Instead, Arizona got the ball to Johnson, who was fouled and gave his team a 67-66 lead from the line.
Michigan's Nik Stauskas missed at the other end, and after a tie-up, the possession arrow gave the Wildcats (11-0) the ball with 9.5 seconds remaining.
Johnson pushed the lead to three with two more free throws, and Arizona fouled Spike Albrecht at the other end. Albrecht made only one of two free throws, and after two more free throws by Johnson made it 71-67, Albrecht made a 3-pointer with 2 seconds left. Arizona's Gabe York added a free throw to end the scoring.
"The first two were the ones that I had to really concentrate about," Johnson said. "After I made those, I knew that the next two, four, were going in."
The Wildcats finished 14 of 15 from the free throw line.
Brandon Ashley scored 18 points for Arizona, which finally wore down Michigan inside in the final minutes.
"I feel like they were just throwing it at the rim and just going up and playing volleyball," said Michigan's Jon Horford, who did his best to protect the basket with four blocked shots. "We have to get tougher in that aspect."
Glenn Robinson III had 20 points for Michigan, but he did most of his damage in the first half. Caris LeVert contributed 15 points for the Wolverines, but this game was decided by Arizona's late free throws and the one miss by Stauskas when Michigan had a chance to go back ahead.
Michigan led 37-28 at halftime, and Mitch McGary pushed the lead to double digits with a dunk for the first points of the second half. But Arizona went on an 11-2 run to pull within two.
Michigan led 58-50, but the Wildcats again had an answer. Aaron Gordon and Ashley made consecutive baskets, and a dunk by Ashley cut the lead to two.
Johnson, Gordon and Kaleb Tarczewski had 14 points each for Arizona. Tarczewski went down with what looked like a right leg injury around the midpoint of the second half, but he was able to return.
It's been a quiet start to the season for Robinson, who showed enough potential in 2012-13 that he considered a jump to the NBA after his freshman year. Against Arizona, he showed why he's a definite candidate to play at the next level.
Robinson made all seven of his shots from the field in the first half, including a contested 3-pointer in the final seconds that gave Michigan the nine-point halftime lead.
"We didn't feel going in at half that we were down nine," Johnson said. "We felt good about ourselves. We had a few easy shots that we didn't finish."
Opponents were shooting only 27 percent from 3-point range against Arizona coming into the game, but the Wolverines were 6 of 11 in the first half. They finished 8 of 17.
The Wildcats rallied late when they finally started converting around the basket. A three-point play with 2:32 to play by Rondae Hollis-Jefferson gave Arizona its first lead of the second half at 63-62.
The lead changed hands four more times after that — for good when Johnson made the first two of his six late free throws.