Kilmarnock inflicted just the second league defeat of John Brown's tenure at Dundee, courtesy of three great goals.
The home side had the better of the first half, recovering from the early loss of Rory McKenzie's superb solo finish to go in level thanks to Ryan Conroy's close-range shot.
Chris Johnston put Killie ahead again after the break and Sammy Clingan extended their advantage.
Mark Stewart gave Dundee late hope, but Kilmarnock held on for victory.
The visitors, who move up to eighth in the table, made an ideal start to the match and McKenzie's goal was a thing of beauty, albeit aided by some extremely lax defending.
He ran from the halfway line, past a series of half-hearted challenges, and then placed his shot beyond the diving Steve Simonsen from just inside the box.
Dundee's response was a positive one, with Lewis Toshney screwing a shot wide after a neat interchange with John Baird and Baird himself blazing over from the right of the penalty area.
That positivity eventually brought about the equaliser, with Gary Irvine's desire to get to the bye-line and drive the ball across goal rewarded as Conroy pounced gleefully at the back post to score.
The home side continued to display the type of form that has been their trademark since manager Brown took the helm and twice within a minute could have gone ahead, but on both occasions Gary Harkins was unable to finish.
The second half perhaps lacked the quality and intensity of the first period, but Johnston lit the game up with a wonderful finish to put Killie back in front.
His first shot from just outside the box rebounded off a defender and back into his path and the winger made the most of his second opportunity, curling the ball past Simonsen and in off the post.
Dundee pressed for a second equaliser and almost found it through Kevin McBride, whose powerful drive was pushed over by Bell.
But their hopes of taking anything from the game were all but extinguished by another terrific Kilmarnock goal.
Rabiu Ibrahim showed wonderful poise and balance to escape his marker and lay the ball into the path of Clingan, who curled a beautiful effort beyond Simonsen from 20 yards.
Dundee showed the determination that almost brought about a miraculous escape from relegation to drag themselves back into the game and Stewart lobbed over Bell to give them a glimmer of hope.
But Kilmarnock saw out the closing minutes to claim the victory.
Live Text Commentary
Full Time The referee signals the end of the game.90:00 +2:57
James Thomson gives away a free kick for an unfair challenge on Paul Heffernan.90:00 +1:56
Kevin McBride concedes a free kick for a foul on Rabiu Ibrahim. Rabiu Ibrahim takes the free kick.90:00 +1:33
Rabiu Ibrahim takes the direct free kick.90:00 +1:33 Booking
Booking James Thomson goes into the referee's book.90:00 +1:27
Chris Johnston fouled by James Thomson, the ref awards a free kick.83:49
The ball is delivered by Kevin McBride, Cameron Bell makes a save.82:13
Carl Finnigan provided the assist for the goal.82:13 Goal scored
Goal! - Mark Stewart - Dundee 2 - 3 Kilmarnock Mark Stewart finds the net with a goal from inside the penalty area to the bottom right corner of the goal. Dundee 2-3 Kilmarnock.81:27
Corner taken left-footed by Chris Johnston, Ross Barbour takes a shot.79:55
Direct effort from the free kick comes in from Sammy Clingan.79:55 Substitution
Substitution Lee Ashcroft is brought on as a substitute for Mohamadou Sissoko.79:55 Booking
Booking Gary Irvine goes into the referee's book for unsporting behaviour.79:50
Gary Irvine concedes a free kick for a foul on Rabiu Ibrahim.78:49
Rory McKenzie concedes a free kick for a foul on Mark Stewart. Kevin McBride delivers the ball from the free kick right-footed from right channel, clearance by Mohamadou Sissoko.77:16
Ross Davidson takes a shot. Save by Steve Simonsen.75:54 Substitution
Substitution Kris Boyd leaves the field to be replaced by Paul Heffernan.75:11
Corner taken short by Kyle Benedictus.74:48 Substitution
Substitution Lewis Toshney leaves the field to be replaced by James Thomson.72:03
Rabiu Ibrahim provided the assist for the goal.
Goal! - Sammy Clingan - Dundee 1 - 3 Kilmarnock Sammy Clingan gets on the score sheet with a fantastic goal from just outside the penalty box to the top right corner of the goal. Dundee 1-3 Kilmarnock.69:53 Substitution
Substitution Carl Finnigan replaces Gary Harkins.68:38
Mark Stewart is ruled offside. Ross Barbour takes the indirect free kick.67:06
Corner taken by Chris Johnston from the left by-line, Declan Gallagher manages to make a clearance.66:39
Corner from the left by-line taken by Chris Johnston, Declan Gallagher manages to make a clearance.66:26
Kris Boyd takes a shot. Blocked by Gary Irvine.65:43
Inswinging corner taken by Ryan Conroy, clearance made by Mohamadou Sissoko.65:26
Kevin McBride takes a shot. Cameron Bell makes a save.64:17 Substitution
Substitution Jude Winchester goes off and Rabiu Ibrahim comes on.62:30
Outswinging corner taken from the left by-line by Chris Johnston, Lewis Toshney manages to make a clearance.62:02
Ryan Conroy takes a shot. Save made by Cameron Bell.60:50
The ball is swung over by Gary Harkins, save made by Cameron Bell.59:27 Substitution
Substitution Mark Stewart comes on in place of John Baird.59:04
The ball is sent over by Ross Barbour.57:55
Assist by Jude Winchester.57:55 Goal scored
Goal! - Chris Johnston - Dundee 1 - 2 Kilmarnock Chris Johnston scores a goal from just outside the penalty box to the bottom left corner of the goal. Dundee 1-2 Kilmarnock.55:37
Direct free kick taken by Kyle Benedictus.55:37 Booking
Booking Mohamadou Sissoko is given a yellow card.55:28
Free kick awarded for a foul by Mohamadou Sissoko on John Baird.53:15
A cross is delivered by Chris Johnston, clearance by Declan Gallagher.50:04
The referee blows for offside against Kris Boyd. Steve Simonsen takes the free kick.49:39
Chris Johnston sends in a cross.49:16
Gary Irvine takes a shot. Cameron Bell makes a save.48:41
Gary Irvine sends in a cross.48:29
The referee blows for offside. Ross Barbour takes the free kick.45:55
Outswinging corner taken right-footed by Ross Barbour from the right by-line, Steve Simonsen makes a comfortable save.45:01
The second half kicks off.45:00 +0:25 Half time
Half Time The half-time whistle blows.45:00 +0:06
Free kick awarded for an unfair challenge on Chris Johnston by Kyle Benedictus.44:01
Gary Irvine takes a shot. Jeroen Tesselaar gets a block in.40:37
Corner taken by Ross Barbour, Declan Gallagher makes a clearance.40:19
Jeroen Tesselaar decides to take the corner short.39:26
Free kick awarded for a foul by Kyle Benedictus on Chris Johnston. Direct free kick taken by Jeroen Tesselaar.38:01
Outswinging corner taken by Chris Johnston.37:35
Outswinging corner taken by Ross Barbour from the right by-line, save made by Steve Simonsen.36:46
Sammy Clingan delivers the ball, save made by Steve Simonsen. Jeroen Tesselaar takes a shot. Save made by Steve Simonsen.34:55
Centre by Ross Barbour, Kyle Benedictus makes a clearance.33:42
Mark O'Hara restarts play with the free kick.33:42 Booking
Booking The referee shows Kyle Benedictus a yellow card.33:39
Mark O'Hara fouled by Kyle Benedictus, the ref awards a free kick.33:15
Gary Harkins takes a shot. Save made by Cameron Bell.32:27
The ball is delivered by John Baird, Headed effort from inside the area by Gary Harkins misses to the left of the target.31:23
John Baird takes a shot. Mark O'Hara gets a block in.23:48
Kyle Benedictus is flagged offside by the assistant referee. Cameron Bell takes the free kick.23:03
Corner taken left-footed by Ryan Conroy from the right by-line, clearance made by Sammy Clingan.22:20
Free kick awarded for a foul by Gary Irvine on Chris Johnston. Free kick taken by Mark O'Hara.21:23
Outswinging corner taken left-footed by Chris Johnston from the left by-line. Sammy Clingan takes a shot from 20 yards. Comfortable save by Steve Simonsen.18:55
Assist by Gary Irvine.18:55 Goal scored
Goal! - Ryan Conroy - Dundee 1 - 1 Kilmarnock A goal is scored by Ryan Conroy from close range high into the middle of the goal. Dundee 1-1 Kilmarnock.18:54
A cross is delivered by Gary Irvine,18:08
The referee blows for offside. Cameron Bell takes the indirect free kick.15:19
Sammy Clingan takes a shot. Save by Steve Simonsen.15:08
Kris Boyd takes a shot. Blocked by Gary Irvine.13:54
Shot from deep inside the area by John Baird clears the crossbar.12:22
The referee blows for offside. Mark O'Hara takes the indirect free kick.10:04
Effort on goal by Lewis Toshney from deep inside the penalty area misses to the right of the target.9:38
Mark O'Hara challenges Gary Irvine unfairly and gives away a free kick. Direct free kick taken by Kevin McBride.8:40
The ball is delivered by Gary Irvine, Gary Harkins takes a shot. Save by Cameron Bell.6:45
Ryan Conroy sends in a cross.3:59 Goal scored
Goal! - Rory McKenzie - Dundee 0 - 1 Kilmarnock Rory McKenzie grabs a fantastic goal from inside the penalty area to the bottom right corner of the goal. Dundee 0-1 Kilmarnock.2:20
Corner taken by Ryan Conroy from the right by-line, clearance made by Kris Boyd.0:00
The match gets underway.
Live data and text provided by our data suppliers