Hearts earned a hard fought win in challenging conditions at Dens Park.
Substitute Jamie Walker came off the bench and fired home the only goal of the game with 15 minutes remaining.
The dense fog in the City of Discovery made the game testing for both sides so it's to the Jambos' credit that they emerged with all three points in what was a game in which they dominated possession.
There were two changes from last weekend's encounter with Rangers, as Liam Boyce (injured) and Josh Ginnelly (suspended) dropped out, being replaced by Ben Woodburn and Andy Halliday.
Hearts began on the front foot and a neat bit of play saw Taylor Moore set up Peter Haring at the edge of the area but the Austrian midfielder shot over the bar.
Woodburn was next to threaten when the ball fell to him in the area but his lobbed effort looped just over the bar.
Hearts were forced into an early change when Stephen Kingsley, injured after a challenge by Max Anderson, limped off and was replaced by Alex Cochrane.
The game never really came to life in the opening period and Luke McCowan came closest to scoring when his low shot on a counter was stopped comfortably by Craig Gordon.
The second half began in much the same fashion with little to talk about until the introduction of Walker for Gary Mackay-Steven on the hour mark. Within a minute, Walker was booked for a late challenge and then fired over from the edge of the box.
Walker's movement was causing real trouble for the Dundee defence, and Woodburn's neat chip over the top found Walker who volleyed wide with the outside of his foot.
Walker also had the ball in the back of the net when Woodburn played him through on goal but the flag was raised - and the decision looked a very tight one. But his goal was coming.
Fellow sub Aaron McEneff was teed up at the edge of the area, his low shot deflected off Liam Fontaine, trickled across the goal line after hitting the post and there was Walker to smash the ball high into the net.
In the last ten minutes, Dundee had a couple of half chances via Paul McMullan and Danny Mullen, while Hearts had two chances on the counter that were given up via poor touches, but those were irrelevant in the pea soup fog as Hearts saw out time to earn a fine three points.
Dundee: Legzdins, Kerr, Fontaine, McGhee, Mullen, McGowan, Elliott, McCowan (Jakubiak, 81'), McMullan, Anderson, Griffiths. Subs: Lawlor, Panter, Donald, Lamb.
Hearts: Gordon, Kingsley (Cochrane, 24'), Souttar, Haring, Woodburn (McEneff, 74'), Mackay-Steven (Walker, 58'), Devlin, Moore, Halliday, McKay, Halkett. Subs: Stewart, Smith, Gnanduillet, Logan.
Referee: Willie Collum