Dundee rounded off their year in style by securing a second Tayside derby win of the campaign thanks to Marcus Haber’s early strike and a stoppage-time second from A-Jay Leitch-Smith.
St Johnstone had to play for nearly 70 minutes reduced to 10 men after defender Richard Foster was red-carded by referee Willie Collum, who also produced six yellow cards.
And the hosts could not salvage anything from the Ladbrokes Premiership clash, suffering a 2-0 defeat at McDiarmid Park.
Neil McCann’s Dens Park men survived a second-half scare when St Johnstone playmaker Stefan Scougall struck the woodwork.
But after a seventh home game without a win, Tommy Wright’s erratic Saints again slipped out of the top six.
St Johnstone’s on-loan Rangers winger Michael O’Halloran is being linked with a recall to Ibrox and was given a chance to bow out, while Cork City-bound striker Graeme Cummins did not feature in Wright’s squad.
For Dundee, Josh Meekings missed out after an injury suffered in the Boxing Day challenge which resulted in a broken leg for Celtic winger Jonny Hayes, while striker Sofien Moussa was also absent.
The visitors got off to a perfect start when Haber fended off the attention of full-back Foster to slide a close-range shot through the legs of exposed goalkeeper Zander Clark.
It was a neat finish from the Canadian to round off build-up play from Paul McGowan and Leitch-Smith.
Collum produced two yellow cards within a minute for offences committed by Saints pair Murray Davidson and Denny Johnstone.
And the referee attracted the ire of home supporters when he showed a red card to Foster following a lunging tackle which needlessly felled McGowan deep in the Dundee half of the field.
As the interval beckoned, Haber was denied a second goal by a brilliant one-handed save from Clark, with Joe Shaughnessy backing-up his keeper to frustrate the onrushing Leitch-Smith when the ball dipped towards the goal line.
Saints manager Wright rang the changes at the break with Liam Gordon and Brian Easton, both later booked, replacing Johnstone and Scott Tanser.
Only the post denied rejuvenated Saints a 54th-minute equaliser when Scougall’s curling 20-yard free-kick left Elliot Parish stranded after Kerr Waddell had been booked for chopping down Davidson.
From the rebound, goalkeeper Parish recovered to tip Gordon’s rising shot over the crossbar.
Dundee substitute Faissal El Bakhtaoui went close to doubling the visitors’ lead but Clark saved his first shot, his second soared over the bar and a 20-yard volley clipped the post.
With Saints chasing a leveller, the lively Leitch-Smith wrapped up the points for Dundee with a rasping 20-yard shot to round off a smart counter-attack.