USC had been 16-0 when leading after eight innings this year. But the Wildcats weren't going away quietly into the night.
Ryan Aguilar led the 9th off with a walk, bringing up Bobby Dalbec.
Dalbec and head coach Jay Johnson had a short conversation before the at bat, seemingly to decide whether or not to go for the sacrifice bunt or swing away.
The power hitter would not bunt, and instead hit a single to right on a 2-2 count. Aguilar was awarded third base thanks to an interference call on the USC shortstop as he was rounding second.
JJ Matijevic would follow with a single of his own to right field, driving home Aguilar, and tying the game up at five.
Ryan Haug added to it by dropping a sac bunt. But USC pitcher Brooks Kriske bobbled the ball, resulting in the bases becoming full of Wildcats.
Kyle Lewis struck out looking, bringing Justin Behnke up with the bases juiced. You would think safety squeeze in that situation, but Johnson did not put that on. Behnke fell behind 1-2, but then got hit by a pitch, bringing across the go-ahead run in Dalbec.
After that, Kriske threw four-straight balls to Cody Ramer, giving the Wildcats a 7-5 lead, forcing USC head coach Dan Hubbs to make a pitching change.
Brent Wheatley would take over on the mound, facing Zach Gibbons first. Gibbons smoked one at the third baseman, going off his glove, and making it 8-5.
The two-run squeeze play was on with Jared Oliva. Unfortunately, it was with two strikes, and Oliva popped it up foul, resulting in the second out of the inning. Aguilar drove one deep to right for the final out of the inning, leaving the bases loaded.
After Dalbec scored the go-ahead run, he went straight down to the bullpen to get his arm loose for the bottom half of the ninth.
Looking for the save, Dalbec struck the first batter out looking on a full count, and then an infield hit to Sawyer Gieseke put Corey Dempster on first. Immediately, he stole second. It wouldn't matter though, as Dalbec eventually walked the next batter.
A strikeout and a grounder to third ended the game, sealing the Wildcats' 8-5 win.
This moves Arizona to 11-8 in conference play, and 28-14 overall.
It wasn't all smiles and rainbows though.
Nathan Bannister got the start for the Wildcats. He had only given up one run over his previous three starts, but if there's been one issue for him this year, it's been the first inning.
That showed up against USC on Thursday, resulting in three Trojan runs, putting Arizona down early on.
The Wildcats' first run of the night came on a balk of all things. Dalbec came up to the plate with runners on the corner, and the illegal motion by USC's pitcher brought Ramer home from third. Dalbec would eventually be retired on strikes.
The second run came off the bat of Alfonso Rivas. With Behnke on third and Ramer at second, Rivas bounced a ball to a drawn-in first baseman, who for some reason didn't go home with it to try and get Behnke. Instead, he took the sure out at his bag, giving Rivas an RBI. Arizona probably shouldn't have been in position to score the run. It looked like Behnke was tagged out trying to steal second during Ramer's at bat, but was called safe by the umpire.
Arizona tied the game in the sixth with an interesting wrinkle on a typical play call. With two strikes and the bases loaded, Behnke put down the squeeze bunt, allowing Matijevic to score from third. Unfortunately, Haug was unable to score from second, as the play is supposed to go.
They couldn't take the lead after re-loading the bases for Gibbons. The senior had a rare two-out groundout to end the threat.
USC took the lead right back. Arizona issued an intentional walk to load the bases. Bannister then hit Frankie Rios after working a full count. The Trojans added another on a long sac fly to left by the very next batter, making the score 5-3.
Rio Gomez took over for Bannister, and was stellar in his first outing in nearly a month. The lefty threw two innings of one-hit ball, striking out four Trojans along the way. He's the reason Arizona's even in position to make a run at a win in the ninth.
The two teams meet again on Friday night at 7 PM PT. JC Cloney is scheduled to pitch for Arizona, and the game will be broadcast on Pac-12 Networks.