The Huskies (6-3, 2/3 Pac-12) overcame a 20-17 halftime deficit to snap a two-game skid. The Buffaloes (2-7, 0-6) lost their fifth straight.
The Buffs started out fast for a change, but failed to finish strong even though they slowed Thompson after his big first half in which he ran for 151 yards and a TD on just 10 carries and added a 41-yard reception to set up another score.
He finished with 174 yards on 15 carries for an 11.6-yard average and 215 all-purpose yards in his second straight start in the Huskies' backfield.
The Huskies' first lead came with 5:38 left in the third quarter when Cyler Miles faked a handoff to Thompson, rolled left and found Pettis for a 28-yard touchdown to put Washington ahead 24-23.
That touchdown followed a fumble by Buffaloes running back Phillip Lindsay, who also fumbled the kickoff after Feeney's pick-6 had made it 31-23.
Pettis put the game out of reach when he darted down the Huskies' sideline to make it a 15-point game with 13:10 left.
The Buffs' last gasp ended when Hau'oli Kikaha dumped Sefo Luifau for a sack on fourth-and-8 from the Washington 9 with two minutes left. Kikaha leads the nation with 15 1-2 sacks.
Washington's comeback began when Miles hit Kendyl Taylor from 9 yards in the final minute of the first half to pull Washington to 20-17 at the break.
After getting outscored 45-0 in the first quarter of their past two games, the Buffaloes scored a touchdown on their first drive for the first time all season. Liufau threw a 30-yard strike to D.D. Goodson for a 7-0 lead.
The Huskies looked as if they'd strike right back when Pettis got behind the defense and hauled in a 48-yard catch, but freshman safety Evan White tripped him up at the 10-yard line.
Two plays later, Miles couldn't handle the high, hard shotgun snap and linebacker Kenneth Olugbode recovered.
After Will Oliver's 30-yard field goal made it 10-0, Thompson got free down the left sideline for 39 yards, then took a fourth-and-2 pitch from Miles and cut back for a 24-yard touchdown.
Colorado fullback George Frazier's 1-yard TD catch made it 17-7.
Thompson reeled off a 56-yard run, but the Huskies stalled and settled for Cameron Van Winkle's 35-yard field goal to pull to 17-10.
The Huskies failed to capitalize on a turnover by Liufau deep in his own territory when Miles and Thompson had trouble on the handoff and defensive lineman Jimmie Gilbert recovered for the Buffaloes.
That led to a 39-yard field goal by Oliver, but Thompson responded with his big run and the Huskies were down by just a field goal at the break, then handled the Buffs in the second half.
Huskies Down Colorado 38-23
Dawgman.com Top Stories
DawgmanRadio - StanfordThe guys from Dawgman.com - Kim Grinolds, Chris Fetters, Scott Eklund, and Luke Mounger - rehash No. 10 Washington's 44-6 record-setting win over No. 7 Stanford Friday night at…
Dawgman.comYesterday at 11:23 PM
Post Game Video - Jake BrowningHere's what Husky QB Jake Browning had to say following Washington's 44-6 win over Stanford on Friday night...
Dawgman.comYesterday at 11:21 PM
Post Game Video - John RossHere's what wide receiver John Ross had to say following Washington's 44-6 win over Stanford...
Dawgman.comYesterday at 11:18 PM
Post Game Video - Elijah QuallsHere's what defensive lineman Elijah Qualls had to say after Washington's 44-6 win over Stanford on Friday night...
Dawgman.comYesterday at 11:14 PM
Post Game Video - Pete KwiatkowskiHere's what Husky defensive coordinator Pete Kwiatkowski had to say following Washington's 44-6 win over Stanford on Friday night...
Dawgman.comYesterday at 11:11 PM