Cardiff City strengthened their grip on the final Championship play-off place with a late derby win over Bristol City, effectively ending their rivals’ hopes of making the top six in the process.

In what was largely a very poor game, two Cardiff substitutions made an impact to provide the decisive goal with five minutes left.

Lee Tomlin won possession and played through Danny Ward, who fired an excellent shot into the bottom corner to secure a result with great implications on both sides of the Severn.

Story of the match

It was a game that took a long time to spark, with a dire first half followed by some added determination in the second and culminating in a dramatic final 10 minutes.

Bristol City could hardly have been slower off the mark in a game that they needed to win. Nothing seemed to stick as they kept rushing passes and throwing possession away, playing like a team for whom time was running out.

That hardly suited Cardiff, mind. Their usual style was disturbed by all those passages on the ball and, like in the goalless midweek draw with Charlton Athletic, they didn’t quite know what to do with it and hit long with little success.

A tame Zak Vyner header was the best effort the home side could muster on goal, while Cardiff came closest thanks to a terrible Robins error. Andreas Weimann rather summed up his team's first half by managing to turn around and pass backwards straight to Junior Hoilett in the middle of the Bristol City box, but his strike was blocked, as Joe Ralls and Nathaniel Mendez-Laing efforts had been in the previous phase.

Defensive grit was on show but little else until the second half. Slowly some passes began to stick and some opportunities began to come, with Will Vaulks found by Hoilett in a fantastic position but failing to aim a shot past Daniel Bentley.

Nakhi Wells could count himself unlucky when he showed great technique to volley an Adam Nagy cross on target, palmed wide by Alex Smithies. A few minutes later Wells was off, part of a triple change that saw head coach Lee Johnson switch to a back three and finally go all-out.

Of the three who came on, it was centre-back Filip Benkovic who had the best opportunity. He evaded Vaulks to get a free header from a corner, yet glanced it wide from the middle of the box.

It proved very costly. Four minutes later the decisive moment came, and it was Neil Harris’s substitutions which had made the difference as Tomlin’s alertness saw him beat Benik Afobe to a loose ball and play in Ward to emphatically finish.

Bristol City did have their chances in injury time, with Sean Morrison blocking a Tomas Kalas effort and Afobe missing the rebound after a poor Smithies punch sparked a scramble. Benkovic even tried an overhead kick as everything was thrown at the cause, but time had run out for this game and their season.

Takeaways from the game

Season over for Bristol City

The late goal saw a six-point gap between the sides become a nine-point one, all but ending any faint hopes Bristol City had of making the play-offs.

For so long they looked one of the sides most deserving of a top-six place, and yet a sudden and considerable drop in form has proved fatal.

It began long before the enforced break but Johnson has found no way to change things around in the three months off, losing all four matches since the restart and extended the winless run to nine games in total. Only Hull City have been worse since the beginning of February – a very underwhelming finish to a season which had held so much promise.

Cardiff with options in attack

Two substitutes linked up for the winning goal in Tomlin and Ward, and it’s not the first time that Harris’s attacking options off the bench have proved key.

Robert Glatzel came on to score in the home win against Leeds United, while both Glatzel and Mendez-Laing did so in the victory at Preston North End that followed.

With those four plus Hoilett and Callum Paterson, Cardiff have two full front-threes that they can rotate within games and between them. In such a congested run-in, this depth could be the difference on more occasions yet.

Man of the match – Sean Morrison (Cardiff)

The centre-back duo of Morrison and Curtis Nelson were immense at the back for Cardiff when they came under pressure, and some key blocks mean that the skipper just edges it for this award.