Scott Tiffoney’s goal set the Dee on their way before two minutes of first-half stoppage time madness saw a Gerald Taylor own goal and a Luke McCowan penalty, putting the hosts on easy street. Frankie Kent pulled one back after the restart but the damage had already been done.
Head Coach Steven Naismith made one change from the side that drew with Rangers on opening day. Daniel Oyegoke came in as the Jambos switched shape, with Yan Dhanda moving to the bench.
Zander Clark was called into action only two minutes into the game. Lyall Cameron received the ball 20-yards out before curling an effort on target, but the Scotland keeper sprung to push it around his left-hand post.
Hearts then threatened five minutes later. Kenneth Vargas did well to steal possession before driving through the Dundee and pulling the trigger from outside the box, only to see his low drive fly past the post.
The hosts opened the scoring on 23 minutes. Some slack Hearts defending allowed Dundee to gain possession with Tiffoney entering the box and cutting inside before tucking away his shot inside Clark’s near post.
Jon McCracken came to Dundee’s rescue on the half-hour mark when Frankie Kent’s header fell to Lawrence Shankland inside the box. At an angle, he hit a shot but the Dundee keeper was quick off his line to make the block.
Clark then produced a double save to deny Dundee a second following a quick break. Seb Palmer-Houlden bounded into the Hearts box but his effort was pushed away, with Lyall Cameron’s follow-up stopped and smothered by the keeper.
Disaster struck two minutes into stoppage time. Simon Murray’s ball across the box was met by Taylor, only for him to mishit his clearance and send it into the back of his own net.
Moments later, Dundee were awarded a penalty. Tiffoney darted into the box but had his legs swiped by Frankie Kent. McCowan stepped up and fired beyond Clark to give the hosts a commanding first-half lead.
With three changes at the break – Dhanda, Malachi Boateng and Yutaro Oda replaced Barrie McKay, Jorge Grant and Daniel Oyegoke – Hearts attacked from the start of the second half, with James Penrice’s half-volley pushed over the bar by McCracken.
Things didn’t look to have gotten any better when Cameron poked home from close range after 50 minutes, but the goal was ruled out for handball in the buildup after a VAR check.
Dhanda went close to pulling one back seven minutes later. He met Oda’s cross inside the box but sent his volley over the bar.
That goal did come on the hour mark. Boateng crossed into the box for Kent to time his run to perfection and steer his header beyond McCracken and into the back of the net.
Kye Rowles was next to try his luck, smashing a loose ball from 25-yards out but his ambitious effort sailed over the crossbar.
Dundee passed up a golden opportunity to go out of sight with 15 minutes remaining. Palmer-Houlden ran straight through the middle of the park before feeding the unmarked Tiffoney inside the box, but he sclaffed his shot clean over the bar.
The Jambos then missed a guilt-edged chance of their own. Taylor’s long throw into the box was knocked on the six-yard box to the unmarked Oda, only for him to head straight at McCracken.
The comeback wasn’t to be, and Hearts suffered defeat in their first game on the road this season.
Dundee: McCracken, Ingram, McGhee, Tiffoney (Robertson, 90′ + 6′), Cameron, Murray (Main, 89’), McCowan, Larkeche (Koumetio, 73’), Palmer-Houlden, Sylla, Portales. Subs: Sharp, Carson, Astley, Graham, Lochhead.
Hearts: Clark, Kent, Oyegoke (Boateng, 45’), Grant (Oda, 45’), Shankland, McKay (Dhanda, 45’), Devlin (Spittal, 70’), Rowles, Penrice, Vargas (Boyce, 75’), Taylor. Subs: Gordon, Kingsley, Halkett, Forrest.