HEARTS will be rueing a series of missed chances to go within a point of Rangers at the top of the table.

Robbie Neilson’s men were dominant in the second-half in the 1-1 stalemate with St Johnstone.

But a combination of good defending and poor finishing meant both sides had to make do with a point apiece in Perth after first-half goals from Liam Gordon and Josh Ginnelly.

The game survived a late pitch inspection following torrential rain across the entire central belt.

The Jambos were without their star striker Liam Boyce who dropped out of the squad, as Armand Gnanduillet led the line.

The big attacker had a header flash wide of Zander Clark’s goal as the away team enjoyed the better of the opening exchanges.

Though it was St Johnstone who took the lead after ten-minutes. After a flurry of dangerous deliverers from Cammy MacPherson at corners, they finally made one count.

Stevie May did excellently to win the flick on at the near post. The ball evaded every Hearts player in the six-yard box and while it looked to be creeping in at the back post, skipper Gordon tapped home from a yard out.

The early goal gave the home crowd a huge lift as they got right behind Callum Davidson’s men, with the 3,000 traveling supporters silenced.

Both teams fought for control of the game, there was a break in the play after a collision between Jamie McCart and Gnanduillet on the half-way line.

The lively Ginnelly tried his luck from just outside the box, but his powerful shot flew over the bar. Michael Smith followed as Robbie Neilson’s men looked for the equaliser.

McCart and Chris Kane were closer to doubling Saints’ advantage after the half-hour mark. The former headed narrowly wide from another MacPherson corner, while the latter hit a rasping shot straight at Craig Gordon following a some poor passing around the Hearts defence.

Moments later and Gordon had to be alert to deny Stevie May from rounding him on the edge of the box as more panicked defending caused Hearts bother.

But the visitors got their deserved leveller. After some scrappy play in the middle of the park – where Ali Crawford looked to have been caught by Beni Baningime – the ball broke and was played through to Ginnelly. He took on McCart and fired a low driving shot past Clark.

The keeper was booked for protesting to Steven McLean about his decision not to give a foul in the build-up, as fans from all ends of McDiarmid Park went wild for differing reasons.

Gnanduillet then thought he’d turned the game on its head seconds before half-time, but his header was well saved by Clark.

Efe Ambrose and Reece Devine were introduced for Lars Dendoncker and James Brown after the interval.

Clark had to be alive to prevent the impressive Gnanduillet from bagging Hearts’ second of the night right after the break too, saving low to his left.

John Souttar was next to let fly. The defender tried his luck from distance after travelling through the Saints half with the ball, with few other options on for the No.4. He would have another shot from a similar distance around five-minutes later, but again this went wide.

Things were turning feisty as some meaty challenges flew in from both sets of players, with the referee inconsistent in what constituted a foul.

Devine tested Gordon as Saints broke on Hearts, who were asserting their authority on the match.

Gnanduillet had yet another golden chance to score and win it for his side. Sub Ben Woodburn played him clean through on goal, but he dragged his shot wide.

It was to be the last clean-cut chance of the match as Hearts' unbeaten run was extended to nine games, with Saints now on ten points.