BOULDER -- Hugh Charles rushed for 109 yards and tacked on 30 more receivng, but No. 22/23 Arizona State's defense held tough to claim a 21-3 win over Colorado Saturday night at Folsom Field.
Saturday's game was a reunion between colleagues Dirk Koetter and Dan Hawkins who coached together at Boise State. Koetter left Folsom Field feeling good about his quarterback Rudy Carpenter and bad for Hawkins.
"I told him to hang in there. I've been where he's at. I know what he's going through," Koetter said.
Koetter went 4-7 in his first season at ASU, when his top assistant, Hawkins, replaced him at Boise State. Now, Hawkins is hoping to follow Koetter's lead and guide a big-time program back to prominence.
Hawkins, however, is off to an 0-3 start because of a struggling offense that has managed just 23 points so far, the fewest by Colorado through three weeks since 1964.
"Dan Hawkins is a heck of a football coach," Koetter said. "Colorado made a very wise choice when they hired him. They've got to keep doing what they're doing."
Carpenter was often off-target but still threw for 248 yards and two touchdowns.
"The defense played great but the offense played terrible," Carpenter said.
Not so fast, Koetter said.
"When we can win 21-3 on the road at a Big 12 school and not play our best on offense because Rudy doesn't play his best, I think that says a lot about where we're at," Koetter said. "Rudy did not play his best tonight, but I think he's still 7-1 (as a starter). I'll take that guy as my quarterback any day of the week."
After leading the nation in passing efficiency last season, Carpenter knows people expect perfection.
"I think I feel that way, (too). Obviously, I want to play the best I can every week and play perfect," he said. "Obviously, that's never going to happen, but that's something you've got to work toward."
Carpenter, whose career TD-to-interception ratio was a sparkling 24-4 entering the game, was picked off twice and finished 21-of-37 passing, but the Sun Devils (3-0) left Boulder unbeaten because again Colorado's offense couldn't do enough to reward a stellar defensive effort.
For the third straight game, the Buffs failed to score after halftime.
"We're making strides," Hawkins said. "Those strides need to be bigger, faster and harder."
Although this was the first meeting between the schools, the game had the look and feel of a longtime rivalry with both sides familiar with each other.
Besides the familiarity of the two head coaches, Hawkins' offensive coordinator, Mark Helfrich, spent eight years under Koetter before coming to Boulder this year. Helfrich's insight into ASU, however, couldn't prevent Colorado's losing streak from reaching seven, the Buffs' longest skid since they opened 0-7 in 1980.
The Sun Devils, who entered play with 13 sacks, tops in the nation, added five more Saturday, all on third down, which negated the modest improvements made by the Buffaloes' offense in Week 3.
Carpenter then floated a 5-yard TD toss to tight end Zach Miller with 1:33 left. Miller's 12th career TD, which broke the school mark set by Joe Petty (1970-72) for most touchdowns by a tight end in school history, was set up by a fumbled punt.
With regular returner Stephone Robinson (shoulder) in the trainer's room, freshman Cha'pelle Brown fumbled a punt at his 20-yard line with 3:55 remaining.
Keegan Herring rushed nine times for 92 yards and Ryan Torain added 80 yards on 18 carries for ASU.
Torain scored on an 8-yard run and Chris McGaha had an 18-yard TD catch to give the Sun Devils a 14-3 lead after a first half in which they turned the ball over three times, twice near the goal line.
After George Hypolite recovered Shaun DeWitty's fumble at the Buffaloes 17 in the opening minutes, Mason Crosby gave CU a 3-0 lead with a 29-yard field goal. He later was wide left from 57 yards, just his third miss in 15 fourth-quarter attempts.
CU linebacker Jordon Dizon never turned to look for the ball on McGaha's TD catch. He plowed into the freshman wide receiver just as McGaha hauled in Carpenter's perfectly thrown pass for a 14-3 lead.
Carpenter was intercepted by safety J.J. Billingsley at the Buffs' 2 less than a minute before halftime.
Colorado had its own troubles down by the end zone - safety Zach Catanese punched the ball out of quarterback Bernard Jackson's hands just as he was about to reach across the goal line in the second quarter and ASU safety Josh Barrett recovered.
"I thought I was in," said Jackson, who finished 8-of-18 for 86 yards and an interception in his second career start.
"We're learning on the run with him and he's learning on the run," Hawkins said.
Junior Hugh Charles got his first start for the Buffs since Hawkins replaced Gary Barnett in the offseason and ran for 109 yards on 20 carries and caught two passes for a team-high 30 yards.