Dundee made one change Liam Fontaine keeping his place after replacing Ryan Sweeney during the Derby on Sunday.
Dundee started well and early on Clarke had to tip the ball over the bar after a shot was deflected from a corner and it was heading for the net.
Adam Legzdins tipped over a 25 yarder from David Wotherspoon before the Dee almost scored from a fast break. Leigh Griffiths’ cross was met by Jordan McGhee’s diving header but the ball flew straight at Clark and the keeper parried. Either side and it would have been a goal.
Then Leigh Griffiths went close with a snap shot which just went past the post. Cammy Kerr came close just on half time when his effort was well saved by Zander Clarke.
Dundee flew at Saints from the start of the second half. Anderson’s burst through the middle was stopped by a cynical foul. Griffiths’ shot from the resulting free kick was parried by Clark into the path of Paul McMullan but the winger shot against the keeper’s body.
But as in recent weeks Dundee paid the price when Saints took the lead when Rooney scored from close range, it changed the game a bit and Dundee pushed forward in search of a goal.
With six minutes to go Saints scored again when Crawford fired home from 15 yards to end Dundee's hopes of a semi final place.
They played well enough on the night, but failed to take their chances and paid the penalty.
Dundee: Legzdins, Kerr, Ashcroft, Fontaine, Marshall, Anderson (McCowan 80), Byrne, McGhee (c) (Sheridan 74), McMullan, Griffiths, McGowan. Unused Subs: Lawlor ,Sharp, Jakubiak, Elliott, Robertson, Panter.
Att: 4,707
Referee: Steven McLean