St Mirren capitalised on desperate defending by Dundee United to move within a point of their hosts in the Clydesdale Bank Premier League.
After putting Saints ahead, Paul Dummett hauled down Jon Daly for a 43rd-minute penalty. The striker converted before Stuart Armstrong's long-range effort gave United a deserved half-time lead at Tannadice.
Errors littered the hosts' game, though, and ex-United striker Steven Thompson equalised with his fourth goal in three games before Brian McLean was sent-off.
Marc McAusland put the Buddies in front after 65 minutes and a rare David van Zanten goal after 78 minutes completed victory for the visitors, rendering Barry Douglas' 90th-minute free-kick mere consolation.
A second away win of the season took the Buddies to 24 points, one behind United, who remained eighth after their winless run was extended to four matches, during which they have conceded 11 goals.
United were seeking a first win since the Dundee derby and started well.
Gavin Gunning twice went close with headers from corners by Willo Flood, while Johnny Russell also twice threatened.
Daly had an effort ruled out for offside for United, who looked vulnerable at the back with Sean Dillon absent for a sixth successive game with a thigh problem.
The defence was torn apart when Jon Robertson's cross-field ball found Gary Teale, who had earlier seen a free-kick saved by Radoslaw Cierzniak.
Teale skipped past Douglas and delivered a low cross which, through a forest of United defenders, left-back Dummett tucked in.
It was his second Buddies goal as his initial loan deal from Newcastle nears its end.
From the restart Russell shot wide across goal, then Craig Samson saved a curling Douglas free-kick before Flood departed, replaced after 26 minutes by Michael Gardyne after being on the receiving end of a couple of meaty tackles.
Four times United failed to test Samson again before Radoslaw Cierzniak gathered the ball cleanly at the feet of Lewis Guy.
Daly went down after a wayward arm struck him in the face at a corner, but when the ball was sent in again by Douglas, Dummett hauled him over and referee Euan Norris pointed to the spot. Dummett was booked and Daly tucked in the penalty.
United were soon in front as an opportunistic 35-yard effort from Armstrong skipped off the muddy surface in front of goal and beat Samson.
Their advantage evaporated five minutes into the second half as a poor Keith Watson pass was intercepted by Guy and Thompson placed the ball beneath Cierzniak.
Gardyne had an effort saved by Samson before the visitors struck again from a Teale free-kick, again benefiting from poor defending.
The ball dropped amid a throng of tangerine jerseys and McAusland slammed it into the roof of the net.
The hosts missed the chance to level as Gunning threaded a ball through for Gardyne, who only had the goalkeeper to beat, but blasted over.
United's woes increased as McLean was shown a straight red card for a reckless tackle on John McGinn before, 12 minutes from time, Teale passed towards Van Zanten who sent in a low cross.
Neither a United defender nor a Buddies attacker met the ball as it drifted across goal into the bottom corner.
The right-back's celebration, hitching up his shorts, was a reference to a charity bet which means he will no longer have to don a Borat-style mankini and sing Madonna's 'Like a Virgin' in front of fans at the end of his third season in Paisley after his first goal.
There was a nervous conclusion for Saints as United won a free-kick on the edge of the box and Douglas nonchalantly curled it in in the final minute of normal time.
Three minutes of stoppage time ensued, but the hosts failed to test Samson again as the Buddies triumphed.