St Mirren picked up their first Scottish Premier League win of the season as Dundee endured a frustrating day at Dens Park.
Kenny McLean's stunning long-range strike put St Mirren ahead six minutes before the interval.
Ryan Conroy struck the frame of the visitors' goal as Dundee pressed for a leveller.
Sam Parkin's composed finish doubled the Buddies' lead and the hosts could not recover.
The bulk of the near-6,000 crowd turned up hoping for a first Dundee win since their return to the top flight but it was the travelling fans from Paisley who went home celebrating three points.
Dundee goalkeeper Rab Douglas was brought into action early on with a save to deny McLean.
Former Dundee United striker Steven Thompson flashed a volley over and then headed too high as St Mirren continued to exert pressure.
And Danny Lennon's side made the breakthrough when McLean picked up the ball 35 yards out and arrowed a drive into the net.
The hosts tried to respond and Conroy's 25-yard attempt beat Craig Samson only to rebound wide off the post.
Thompson was booked early in the second half following a challenge on Iain Davidson and the striker escaped a second yellow card after another foul, this time on Kyle Benedictus, moments later.
Mark Stewart's shot was well saved at point-blank range by Samson and Dundee's disappointment continued when Davidson fired over.
Stewart then went to ground in the box following a challenge by McLean but no penalty was forthcoming and the home side's frustration was compounded as St Mirren went up the park to score their second.
Dougie Imrie's cross from wide on the left was controlled by Parkin and the striker had all the time he needed to control the ball and place it low past Douglas for his first Buddies goal.
A header by Stewart cleared the bar and John Baird was also guilty of a glaring miss when his attempted lob missed the target.
In between those two misses, Davidson did find the net but Davidson's effort was ruled offside and Dundee will hope to break their SPL duck in next weekend's derby match with United.
Effort on goal by John Baird from inside the penalty area goes harmlessly over the bar.
90:00 +1:46 Substitution
Substitution Gary Teale joins the action as a substitute, replacing Jon Robertson.
Corner taken left-footed by Ryan Conroy from the right by-line, clearance by Thomas Reilly. Corner taken by Ryan Conroy from the left by-line to the near post, clearance made by Thomas Reilly.
Ryan Conroy takes the inswinging corner, clearance by Lee Mair.
86:59 Full time
Full Time The final whistle is blown by the referee.
Inswinging corner taken by Ryan Conroy.
Inswinging corner taken by Graham Carey from the right by-line, save by Rab Douglas.
Corner from the right by-line taken by Ryan Conroy, save made by Craig Samson.
Substitution (St Mirren) makes a substitution, with Marc McAusland coming on for Dougie Imrie.
Substitution Stephen O'Donnell goes off and Graham Webster comes on.
Indirect free kick taken by Craig Samson.
Substitution Leighton McIntosh replaces Mark Stewart.
The referee blows for offside against Iain Davidson.
The ball is crossed by James McAlister, Mark Stewart has a headed effort from close in and clears the bar.
The assist for the goal came from Dougie Imrie.
62:45 Goal scored
Goal! - Sam Parkin - Dundee 0 - 2 St Mirren Sam Parkin finds the back of the net with a goal from inside the area to the bottom left corner of the goal. Dundee 0-2 St Mirren.
The ball is sent over by Dougie Imrie,
Foul by Kenny McLean on James McAlister, free kick awarded. Kyle Benedictus takes the free kick.
Substitution Steven Thompson goes off and Thomas Reilly comes on.
James McAlister takes a shot. Craig Samson makes a save. Outswinging corner taken left-footed by Ryan Conroy, clearance by Steven Thompson. Ryan Conroy takes the inswinging corner, Steven Thompson manages to make a clearance. Ryan Conroy takes the outswinging corner, Effort on goal by Iain Davidson from inside the penalty area goes harmlessly over the bar.
Free kick taken by Gary Irvine.
Booking Steven Thompson is given a yellow card.
Unfair challenge on James McAlister by Steven Thompson results in a free kick.
The referee starts the second half.
45:00 +0:47 Half time
Half Time It is the end of the first-half.
Corner taken by Dougie Imrie from the right by-line, Rab Douglas makes a save.
Ryan Conroy has an effort at goal from long range hitting the post.
38:24 Goal scored
Goal! - Kenny McLean - Dundee 0 - 1 St Mirren Kenny McLean finds the net with a goal from a long way out to the top right corner of the goal. Dundee 0-1 St Mirren.
Stephen O'Donnell concedes a free kick for a foul on Paul McGowan. Kenny McLean takes the free kick.
Gary Irvine gives away a free kick for an unfair challenge on Dougie Imrie. Free kick crossed by Graham Carey, Kyle Benedictus makes a clearance.
Inswinging corner taken by Graham Carey, free kick awarded for an unfair challenge on Kyle Benedictus by Steven Thompson. Rab Douglas restarts play with the free kick.
Davide Grassi takes the free kick.
Booking David van Zanten is cautioned.
Ryan Conroy fouled by David van Zanten, the ref awards a free kick.
Dougie Imrie takes a shot. Save by Rab Douglas.
Free kick awarded for a foul by Stephen O'Donnell on Paul McGowan. Graham Carey delivers the ball from the free kick left-footed from right channel, save by Rab Douglas.
Iain Davidson fouled by Paul McGowan, the ref awards a free kick. Davide Grassi takes the indirect free kick.
A cross is delivered by David van Zanten.
Unfair challenge on Dougie Imrie by Gary Irvine results in a free kick. Kenny McLean restarts play with the free kick.
Foul by Kenny McLean on John Baird, free kick awarded. Stephen O'Donnell crosses the ball from the free kick right-footed from left wing, clearance by Darren McGregor. Shot by Iain Davidson from outside the area goes high over the crossbar.
Effort from a long way out by Iain Davidson goes wide left of the net.
Corner taken by Dougie Imrie from the right by-line to the near post, Matthew Lockwood manages to make a clearance. Inswinging corner taken left-footed by Dougie Imrie from the left by-line, save by Rab Douglas.
Foul by Davide Grassi on Jon Robertson, free kick awarded. Graham Carey produces a cross, Kenny McLean takes a shot. Rab Douglas makes a save.
Free kick awarded for a foul by Stephen O'Donnell on Paul McGowan. Darren McGregor restarts play with the free kick.
The assistant referee signals for offside against Mark Stewart. Craig Samson takes the free kick.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.