Carolina (15-10, 5-5 Atlantic Coast Conference) struck first with a two-out hit in the second. Tom Zengel led off the inning with a bloop single to right and scored three batters later on a Tyler Ramirez RBI double to left.
That would be all for the Tar Heels against Van Orden, however, as the senior righty was in control for most of the afternoon, striking out 12 and walking none in eight innings of work to improve to 2-2 on the year.
Meanwhile, Duke (15-12, 5-5 ACC) manufactured single runs in the third, fifth and seventh off Thornton (5-1) with some help from the Tar Heel defense. The Blue Devils tied the game in the third after back-to-back one out singles from Mark Lumpa and Matt Berezo. After both runners advanced on a flyout, Lumpa scored from third on a Thornton wild pitch.
DU took the lead in the fifth on an unearned run after Landon Lassiter threw wild of first for what would have been the first out of the inning. Two batters later, Kenny Koplove scored on Berezo's sacrifice fly to make it 2-1. Berezo's second sac fly of the day made it 3-1 in the seventh.
Carolina mounted a rally in the ninth against Duke closer Robert Huber in the ninth but came up one run short. Huber walked the first two batters he faced, and Lassiter scored when Michael Russell beat out a potential inning-ending double play for an RBI fielder's choice.
But Huber got Zengel looking for the final out of the game to give Duke its first win over Carolina since 2010.
The Tar Heels will send Benton Moss to the hill in game two of the series opposite Duke's Andrew Istler. That game is set for a 1 p.m. start Saturday, but inclement weather could cause a change. Check GoHeels.com and @DiamondHeels on Twitter for the latest information.