Pittsburgh (4-1, 2-0 Big East) has beaten the last three nationally ranked teams it has faced, including No. 23 Cincinnati and No. 2 West Virginia in 2007. The Panthers have won two of the last three games with South Florida (5-1, 0-1) in Tampa, but lost the previous two overall.
Stull finished 16-for-27 for 228 yards. McCoy had 28 carries for 142 yards.
Quarterback Matt Grothe accounted for most of South Florida's offense, but the Bulls didn't score any points on offense in the first half. Grothe was 11-of-20 for 129 yards and rushed 11 times for 25 yards, including a 1-yard keeper for a TD in the third. USF's only first-half points came off a blocked punt.
Grothe threw a 22-yard touchdown pass to Jessie Hester in the fourth quarter to give the Bulls a 22-20 lead, but Pitt came right back to take the lead, covering 60 yards on three plays in a quick drive that ended with a 3-yard run by McCoy. The 2-point attempt failed, as Stull dropped the ball.
McCoy surpassed the 100-yard mark in his second straight game, while Mike Ford ran 14 times for 73 yards for the Bulls.
South Florida struggled in the first half, as the offense was held to just 77 yards. Grothe was 5-of-12 with an interception. The pick by Dom DeCicco was the first interception for Grothe in 107 passes and just his third in six games.
The Bulls had a 42-yard field goal attempt blocked by Greg Williams, and on their next field goal attempt, South Florida faked the kick but backup quarterback Grant Gregory failed to convert on fourth down.
The Bulls scored first when Quenton Washington broke through untouched and blocked a punt by Dave Brytus. Charlton Sinclair picked up the fumble, returning it 27 yards for the score.
However, the Panthers scored on their next drive with Stull hitting receiver Jonathan Baldwin for a 52-yard touchdown pass. The Panthers took a 14-7 lead on a 6-yard run by McCoy and extended the lead to 10 when Conor Lee hit a 35-yard field goal with 22 seconds left in the first half.
Lee's 31-yard field goal made it 20-14 in the fourth.
All-America junior defensive end George Selvie did not start for the second straight game for South Florida, although he entered the game with 10:22 left in the second quarter and recorded two tackles, one for a loss.
South Florida forced two fumbles, both recovered by linebacker Kion Wilson, the first two of his career.
The AP contributed to this story.
McCoy's 2 TDs Key Pitt's Upset Win
Panther More Top Stories
2017 DE previews OV to Pitt, othersNorth Carolina defensive end Zion DeBose has a final five that includes Pitt. He breaks down his busy January ahead.
Scout 300 trend meter: Lamont WadePitt's no. 1 target was not able to make it to Penn State this past weekend for its win over Ohio State. Wade has rescheduled his visit and will visit Pitt, as well.
Scout Football5:46 PM
NSD Countdown: Handicapping Victor DimukejeScout examines where the recruitment stands for Baltimore Boys' Latin defensive end Victor Dimukeje.
Scout FootballThursday at 7:49 PM
CB Pinnock Picks PittWindsor (Conn.) High cornerback Jason Pinnock canceled his other visits after his Pitt commitment.
Scout FootballWednesday at 5:45 PM
Did Visit Push Pitt Ahead For CB Pinnock?Windsor (Conn.) High cornerback Jason Pinnock, a one-time Boston College commit, has an other ACC school high on his list after an official visit.