The match appeared to be heading for a stalemate after Kris Doolan's first-half opener for the visitors was cancelled out immediately by Steven MacLean's equaliser.

However, in the 600th competitive match at McDiarmid Park, it was Thistle who were to enjoy a happy ending as Osman fired in the winner with seconds to spare.

It was a welcome second win in a row for the Firhill side

Saints, who were at one point in the day sitting provisionally in second place, finished the 90 minutes back in fifth.

Saints had defender Brian Easton to thank for preventing Thistle from taking an instant lead.

There was only a minute on the clock when the full-back was forced into a desperate last-ditch tackle to prevent Ade Azeez from latching on to a knock-down eight yards out.

In a see-saw opening, home attacker Danny Swanson proved his danger when he brilliantly nutmegged Christie Elliott and shuffled past Osman before firing in a shot that Thorsten Stuckmann held.

The Thistle goalkeeper would have been grateful for the early involvement as he made his first start for the club in place of the injured Ryan Scully.

The game then burst to life with two goals in a minute.

Thistle got their noses in front in the 17th minute with a simple goal that would have annoyed Saints manager Tommy Wright.

Sean Welsh's free-kick was nodded down by Liam Lindsay, who penned a new two-year contract this week, and Doolan bundled in from close range.

However, just seconds later, the Perth hosts restored parity.

David Wotherspoon brilliantly outfoxed Adam Barton in the box with a superb turn and the midfielder unselfishly cut back for MacLean to fire home from 12 yards.

The instant riposte will have thrilled Wright but there was an anxious moment for Saints in the 27th minute as keeper Zander Clark had to scramble across his goal to touch a deflected Christie cross around his left-hand post.

St Johnstone defender Joe Shaughnessy and Thistle midfielder Sean Welsh traded shots as momentum swung from one side to the other, but the game was crying out for creativity in the final third.

Azeez took a more direct route to goal on the hour mark but Clark was equal to his powerful drive.

And the home keeper was back in action to beat away Ryan Edwards' effort four minutes later when Azeez's flick-on was brilliantly nodded by Doolan into the midfielder's path.

Saints substitute Michael Coulson fired wide after exchanging passes with MacLean as the full-time whistle approached but there was to be one final defining act in injury-time as Partick won it.

Substitute David Amoo seized on a clumsy touch from Liam Craig before surging past the midfielder.

His cutback was blasted in by Osman from 10 yards out to spark wild celebrations in the visiting ranks.