Carolina (2-3) jumped ahead in the third after loading the bases with no one out. After Wood Myers lined out, Parks Jordan lifted a ball into center to score Adrian Chacon on a sacrifice fly to make it 1-0.
Daly made it 2-0 in the fifth with the first steal of home since Michael Russell did it in 2013 against Clemson. With runners on first and third, Myers got picked off by Xavier starter Scott Klever. But Myers was able to stay in the rundown long enough to allow Daly to score from third, and Myers slid back into first safely as Daly crossed home.
Thornton (2-0) was sharp in his second start of the year, allowing just five hits and needing only 99 pitches to work into the seventh. The Charlotte, N.C., sophomore cruised through the first five innings before allowing three straight hits in the sixth, including a two-out RBI single by Mitch Elliott.
With two outs in the seventh, Carolina called on freshman lefty Zach Rice to face Xavier right fielder Brian Bruening. Rice, who has now registered four strikeouts in 1.1 innings on the year, got Bruening swinging to end the threat and strand the tying run on first.
From there the game was in the hands of McCue, who got his second save in as many chances but not without some drama in the ninth.
After Elliott led off with a single and a stolen base, McCue got Schoettmer swinging for the first out of the ninth. Xavier then put runners on the corners with a walk and a stolen base, but McCue struck out Tres Eberhardt swinging and Joe Forney looking to end the game.
Myers and Daly led the Tar Heels with two hits each, while Derek Hasenbeck was 3 for 3 for Xavier (4-1).
Zac Gallen will take the hill for Carolina in Sunday series finale. Game time is 1 p.m. and tickets are available at GoHeels.com and the Boshamer box office.