Anu Solomon threw for four touchdowns and ran for a career-best 115 yards, and No. 21 Arizona kept Colorado winless in the Pac-12 by beating the Buffaloes 38-20 on Saturday night.

Colorado's Sefo Liufau threw for 252 yards and a touchdown but was intercepted twice and lost two fumbles. The sophomore left after a vicious hit while throwing his second interception with 11:16 to play.

Arizona (7-2, 4-2) scored a touchdown after each of the four turnovers by the Buffaloes (2-8, 0-7).

Tra'Mayne Bonderant returned Liufau's fumble 22 yards for the Wildcats' first TD.

Arizona's Nick Wilson rushed for 86 of his 153 yards in the fourth quarter.

The Wildcats, coming off a 17-7 loss at UCLA, grabbed the lead for good when Solomon threw a 1-yard touchdown pass to David Richards that made it 21-17 with 11 seconds left in the first half.

But it was a tight game until Solomon connected with Samajie Grant for a pair of fourth-quarter touchdowns.

Grant's first TD made it 31-20 with 9:50 to play. The 27-yard reception came after Devin Holiday intercepted Liufau, who was hit hard by Sani Fuimaono just as he let go of the ball.

Liufau stayed on the ground for several minutes before getting to his feet and walking off. Sophomore Jordan Gehrke finished the game at quarterback for the Buffaloes.

Colorado struck on the first play from scrimmage. Shay Fields got behind Arizona cornerback Cam Denson for a 75-yard touchdown reception.

Arizona tied it at 7 when a blitzing Anthony Lopez knocked the ball from Liufau as he attempted to pass. Bonderant grabbed the fumble on one bounce and returned it 22 yards for the score.

Moments later, Liufau fumbled again. Jared Tevis knocked the ball loose and recovered at the Buffalo 31. Five plays later, Solomon's 8-yard touchdown pass to Tyrell Johnson put Arizona up 14-7.

Colorado used trickery to tie it again.

Phillip Lindsay took the handoff and gave it to Nelson Spruce for what appeared to be a reverse. But Spruce threw 7 yards to Liufau in the end zone.

A Buffaloes drive stalled at the 1-yard line and Will Oliver's 19-yard field goal put Colorado up 17-14 with 4:09 left in the second quarter.

Jourdon Grandon's diving interception gave Arizona the ball at its 45 with just over two minutes left, and Solomon's TD pass to Richards put the Wildcats in front.

It was the ninth straight game that Liufau has thrown an interception. Richards was the 10th Arizona player with a scoring catch this season.