St Mirren's five match unbeaten away run came to an end as the Buddies were beaten by Hearts at Tynecastle.
Jim Goodwin's men had plenty of chances but an inspired Craig Gordon performance for the home side coupled with goals from Gary Mackay-Steven and Stephen Kingsley meant Hearts took all the points.
The Buddies were forced into one change from the side that drew with Livingston last week. An injured Conor McCarthy dropped out and was replaced by Charles Dunne who made his first start since August.
Saints started well in the capital and Hearts goalkeeper Gordon had to make two good saves in a minute to deny the visitors the opener on 20 minutes. The Scotland international first beat away a Brophy drive from a tight angle, before making a terrific stop to deny Dunne from the resultant corner.
Saints were dealt a blow just after the half-hour mark when Scott Tanser went down inside the St Mirren box and couldn't continue after treatment from the physio.
The Buddies almost took the lead with three minutes of the first-half remaining when Joe Shaughnessy's strike was deflected goalward by Hearts defender Michael Smith. Gordon made a block with his feet to stop the ball creeping over the line.
In the final moments of the first-half Saints did have the ball in the net when Richard Tait finished neatly beyond Gordon but was denied by the linesman's offside flag. It was a tight call with Tait looking like he may have been in line with one of the Hearts defenders.
Richard Tait had a goal ruled out for offside (Image: Craig Brown)
The home side started the second 45 on the ascendancy with Jak Alnwick having to make a terrific save to block Gary Mackay-Steven's attempt before Smith also had a follow-up strike blocked by the Saints defence.
But Saints quickly came into it and could've taken the lead with three big opportunities in the space of a minute. McGrath was denied by a wonderful one-handed stop from Hearts goalkeeper Gordon and from a corner soon after, Marcus Fraser had a header blocked on the line and no one in black and white could follow-up. Moments after Gordon made another big save to turn over a McAllister dig from the edge of the box.
And those passed up chances would come back to haunt the Buddies a couple of minutes later when Hearts took the lead. Mackay-Steven swept home from 12 yards to put the home side in front just after the hour mark.
Hearts doubled their advantage with 15 minutes to go. Stephen Kingsley scored a stunning free-kick from 25 yards to put the home side 2-0 in front and secure the three points for Robbie Neilson's side.
Saints misery was compounded in the final minute of stoppage time when Shaughnessy was shown a second yellow card.
Full-Time: Hearts 2-0 St Mirren
St Mirren: Alnwick, Fraser, Shaughnessy (c), Dunne, Tait, Flynn (Kiltie 81), Power, Tanser (McAllister 34), McGrath, Ronan (Dennis 73), Brophy
Subs Not Used: Lyness, Millar, Erhahon, Main
Hearts: Gordon, Smith, Souttar, Halkett, Kingsley, Devlin, Baningime (Haring 86), Halliday, McKay, Mackay-Steven (Ginnelly 70), Boyce (Gnanduillet 80)
Subs Not Used: Stewart, McEneff, Woodburn, Cochrane
Referee: Alan Muir
Assistant Referee: Ralph Gordon
Assistant Referee: Jonathan Bell
Fourth Official: John Beaton