Ten-man United showed their resilience to bounce back from a first half Craigroyston goal to take all three points.
A goal down after 43 minutes and with Ollie Fleming sent off shortly after the re-start, it looked like the Saints would slip to a dismal loss.
But Saints are made of stern stuff and managed to conjure up the goals to not only pull level but ease away to victory.
United started well and passed up several good chances in the opening quarter of an hour.
The best of which fell the way of Owen Andrew who clipped the post with his effort.
Saints kept up the pressure and Kyle Wilson scampered clear on goal with 37 minutes played only for the home ‘keeper to comfortably hold his effort.
They were made to pay for the missed chances when Craigroyston took the lead shortly before the break through D’Angelo.
The cause was made that bit tougher when Fleming picked up his second caution.
Despite this setback, Saints still looked the better side and in 55 minutes Andrew hit a perfect free kick into the top corner of the net to bring the scores level.
The home team were under pressure from then on and had real problems at the back keeping Saints forwards at bay.
Efforts from Wilson and substitute Honeyman went wide.
In 64 minutes Saints took the lead after a good passing move saw Kyle Wilson hit a shot low past home keeper Smail.
With 15 minutes to go Honeyman broke clear to get a cutback away but it was missed by all.
With five minutes to go Wilson made it 3-1 when he slotted home before getting his hat-trick two minutes from full time.
Saints: Curtis, O Fleming, M Fleming, D Fleming, Rendall, Penman (Doig69), Wilson, Andrew, Cunningham, Blaney (McInnes50), Macaulay (Honeyman46).
Subs:Shaw, King, C Fleming.