Tommy Wright’s side were put on their way to victory after forward O’Halloran opened the scoring on 10 minutes when his shot squirmed past United debutant keeper Michal Szromnik, before the 24-year-old notched his second on 44 minutes.
It meant a second consecutive Scottish Premiership league defeat for Jackie McNamara’s United after last weekend’s 3-2 defeat to Kilmarnock and they now must hope to bounce back in Tuesday’s re-arranged game with Inverness.
O’Halloran fired the visitors in front when he cut in from the left and unleashed a swerving shot which, despite getting a hand to it, Szrmonik could not keep out as it found its way into the back of the net.
United tried their best to get back on level terms and had a period of pressure soon after.
Nadir Ciftci had a shot blocked by Saints defender Frazer Wright, before Ryan McGowan’s header from Paul Dixon’s in-swinging free-kick went over the bar as the half-hour mark approached.
Then, a minute later, Ciftci’s volley was deflected off Chris Millar for a corner which Ryan Dow took but for the hosts it came to nothing.
But the Saints doubled their lead just before half-time and it was O’Halloran again who did the damage when he volleyed the ball past Szromnik after Dave Mackay picked him out in the box.
The visitors created the first real opening of the second half when Wright laid the ball into the path of Steven MacLean but his left-foot effort went just wide of the target.
Soon after, the Perth side were on the attack again when substitute Croft raced down the right and his cross was almost turned into his own goal by McGowan, only for Szromnik to gather a yard out.
On 68 minutes, Ciftci came close for United when his shot from inside the box was deflected, forcing Saints keeper Alan Mannus to parry the ball wide for a corner.
That gave the hosts a bit of a lift and Paul Dixon tried his luck shortly after but his left-foot effort went past the far post.
Still, though, Saints remained in control and successfully saw out the closing stages to pick up three valuable points.