Crompton threw a 26-yard screen pass to Bryce Brown to give the Vols (2-2) a 31-20 lead with 2:38 in the third quarter and lobbed a 3-yard scoring strike to Brandon Warren at the end of the first.
With a stable of tough running backs, the Vols relied on their strong running game in their first three games to protect the turnover-prone passing game. Against the Bobcats, they rushed for 177 yards while Crompton completed 17 of 34 passes for 222 yards.
Ohio (2-2) kept Tennessee uncomfortable by taking advantage of mistakes and passing for 319 yards against a Vols defense that entered the game allowing an average 88.33 yards by air per game.
Crompton threw his eighth interception of the season to Noah Keller, who returned it 10 yards to the Tennessee 30. Theo Scott connected with LaVon Brazill on a 2-yard touchdown pass four plays later, giving the Bobcats a 14-7 lead with 7:08 in the first quarter.
Scott finished 30-for-52. Brazill had 92 yards on eight catches, and Taylor Price added 90 yards on four catches.
Chris Garrett took advantage of the Vols' poor special teams coverage and returned a kickoff 95 yards for a touchdown.
Tennessee, which entered the game ranked fifth in total defense in the FBS, held the Bobcats to only 21 yards rushing on 17 carries.
The Vols were also strong on the ground on offense. Montario Hardesty ran 20 times for 140 yards and an 11-yard touchdown and now has 1,531 career yards rushing.
Bryce Brown added 56 yards rushing and caught two passes for 60 yards, including a 34-yard catch on the second play of the game.
Tennessee will have a tough time regrouping before facing Auburn at home next week with several Vols leaving the game because of injury. Coach Lane Kiffin said starting middle linebacker Nick Reveiz was likely lost for the season after taking a hard hit on his right knee.
Even though rain earlier in the day kept the attendance at Neyland Stadium down, the 95,535 in attendance made up the second-largest crowd in Ohio's history.