LOS ANGELES -- When Juron Criner stretched and stumbled across the goal line for Arizona's go-ahead touchdown, the half-empty Coliseum fell into a gloomy silence that matched the dark clouds above Southern California's once-intimidating stadium.

Over on the Wildcats' sideline, it was all sunny skies and Hollywood endings. After a bunch of crazy finishes and brutal losses, long-struggling Arizona is headed to a fine reward for its most impressive season in a decade.

Criner dived into the end zone with a 36-yard TD pass from Nick Foles with 3:14 to play, and Arizona likely wrapped up a Holiday Bowl berth with a 21-17 victory over not-so-mighty USC (No. 18 ESPN/USA Today, No. 20 AP) on Saturday.

"It feels amazing," Criner said. "It's an indescribable feeling. How would you describe it if somebody asked you how it feels to rewrite history?"

Foles passed for 239 yards and two TDs and ran for another score for the Wildcats (8-4, 6-3 Pac-10), who finally beat USC for the first time in coach Mike Stoops' tenure by scoring the final touchdown in a defense-dominated game.

Although bowl berths won't be given out until Sunday, Holiday Bowl officials had said they were likely to select the winner of this game. While the Pac-10's No. 2 bowl would have been a consolation prize for USC (8-4, 5-4), it's a sweepstakes jackpot for the Wildcats, who won the Las Vegas Bowl last season in their first bowl appearance since 1998

"With such a big bowl on the line, and a finish of anywhere from second to sixth [in the Pac-10], it was a big thing for us," Stoops said. "It's been like this all year. I've never seen a year like this. ... I don't know if we have the best players, but we're awfully good if we're balanced."

After Jordan Congdon made a 37-yard field goal with 7:13 left to put the Trojans ahead, Arizona's struggling offense suddenly jolted into life, converting three straight third downs on the decisive drive. When Foles saw single coverage on his top receiver, he changed the play to a streak route for Criner, who caught the long pass and eluded a tackle before scoring.

"It comes down to will and wanting it, and our guys have a lot of heart," said Foles, who went 22 of 40 but made several clutch throws, including an early TD pass to Delashaun Dean. "USC played great, but our guys wanted it more."

Arizona secured a share of second in the Pac-10 with its first eight-win regular season since 1998 and knocked off a ranked team for the sixth straight season under Stoops. The Wildcats also ended a seven-game losing streak against USC.

The Trojans' second home loss in three games was a dismal way to finish the most embarrassing regular season of coach Pete Carroll's remarkable tenure. One of college football's marquee programs has taken a clear step backward.

The Trojans were 47-1 at the Coliseum before last month's loss to Stanford. USC has been in the AP Top 25 for its past 102 games, a streak that could end Sunday.

"It just feels so different," Carroll said. "It's so different than what we've done over our career. We've tried to find our way and battled. It just hasn't ever really kicked in like we would have liked it to have done."

Not even Senior Day could coax any consistency out of the dismal USC offense led by Matt Barkley, who went 20 of 37 for 144 yards with the 12th interception of his rocky freshman season. Allen Bradford rushed for 66 yards and a tying touchdown late in the third quarter, and Ronald Johnson caught a TD pass.

After beginning the season in search of their eighth straight Pac-10 title and BCS bowl berth, the Trojans can't finish higher than fifth place. A lower-tier bowl game awaits, including the chance of a more humbling trip to San Diego for the Poinsettia Bowl.

"It's tough to swallow, it is," receiver Damian Williams said. "I'd be lying if I said this was expected. It was just a growing experience. Every single person on this team has learned a lesson."

USC couldn't get a first down on its ensuing drive after Criner's catch, with Barkley throwing three straight incompletions -- including a fourth-down throw over the head of Damian Williams, who was open down the middle. USC got the ball back with 7 seconds left, but Barkley was sacked by Earl Mitchell.

Barkley was among several Trojans who noticed a lower excitement level after last week's 28-7 victory over UCLA. USC managed just 120 yards of offense by halftime, when the Wildcats led 14-7.

"You could tell the difference today," Barkley said. "The energy was there in the fourth quarter, but it was almost like it was too late. I don't know why we're putting ourselves in bad situations."

Stafon Johnson, the USC tailback who nearly died in a weightlifting accident that ended his season in September, was the last of USC's seniors to take the field in pregame introductions. Johnson, who wore his jersey and a stocking cap as he posed for pictures with his mother and teammates, still hasn't decided whether he'll attempt to return for another season.