In a tightly contested Championship clash at St. Andrew's, Birmingham City managed to cling onto a single point after a dramatic finish saw Demarai Gray step up to convert a last‑minute spot‑kick, ensuring a 2-2 stalemate with Bristol City.

The match unfolded with both sides creating numerous opportunities, and the final outcome was shaped by a series of twists, controversial decisions, and a flurry of late drama. The first half saw Bristol City take the initiative. In the 33rd minute, their attacking midfielder Scott Twine found space inside the box and unleashed a powerful low drive from eight yards out.

The ball ricocheted off a defender, looped back to Twine, and he finished cleanly, giving the Robins an early lead. Birmingham, however, responded swiftly.

Just nine minutes later, Carlos Vicente rose to meet a cross and headed the ball into the net, leveling the score at 1-1. The goal marked the first time this season that Birmingham had conceded a goal after taking the lead. Following the equaliser, the tempo intensified.

Bristol City continued to press, with Twine again testing Birmingham's goalkeeper James Beadle with a sharp, angled effort that narrowly missed the target. Birmingham’s right‑back Bright Osayi‑Samuel then produced a curling left‑footed strike that forced a save, illustrating the home side's growing confidence. The second half began with both teams eager to seize the advantage.

Bristol City's substitute Dom Ballard made an immediate impact. After an 85th‑minute cross from Rio Cardines, Ballard, with his back to goal, executed a deft flick that sent the ball looping over Beadle, restoring the lead for the visitors at 2-1.

The goal was a showcase of quick thinking and technical skill, as Ballard managed to redirect the ball with his heel while under pressure. Birmingham attempted to respond, but their efforts were repeatedly thwarted.

Defender Rob Dickie, after falling backwards, managed to glance a header from a Cardines free‑kick over the bar, while Lorent Tolaj headed another from a Jason Knight cross just four yards from goal, only to see it sail wide. Both moments highlighted the fine margins that defined the contest. Midway through the second half, Birmingham began to create more chances.

Tomoki Iwata unleashed a powerful volley that clipped the crossbar, and Bristol City’s Joe Williams missed a golden opportunity, sending a side‑footed effort wide from a prime position. The match saw a flurry of exchanges, with each side testing the other's defensive resolve.

In the 54th minute, Twine forced Beadle into his first serious save of the game, delivering a low, angled drive that required a quick reaction from the goalkeeper. Shortly after, Tolaj, positioned at the far post, headed the ball wide from just two yards out, a rare miss for a player of his stature. Later, new signing Jed Wallace saw his rising piledriver on the break palmed away by Beadle in an acrobatic display. Substitute Tomi Horvat, playing for Bristol City, also made his presence felt.

After receiving a pass from Lisav Eissat, Horvat struck a toe‑poked shot that forced Beadle into a one‑handed save, showcasing the visitors' persistence in the attacking third. As the clock ticked towards the 80th minute, the game remained finely balanced. Birmingham’s Jhon Solis appeared to have scored from a corner delivered by Alex Cochrane, but the goal was ruled out for off‑side, prompting frustration among the home fans. Soon after, substitute Sam Greenwood unleashed a thunderous strike that was comfortably palmed away by the Bristol City keeper, keeping the score at 2-1.

The climax arrived in injury time. A chaotic melee in the Birmingham penalty area resulted in a handball, and the referee pointed to the spot. Gray, who had already contributed earlier in the season, stepped up and calmly slotted the penalty into the bottom corner, equalising for the hosts and securing a point.

Post‑match reactions reflected the contentious nature of the encounter. Birmingham midfielder Chris Davies expressed his disbelief over the disallowed goal for Solis, stating, "I was furious and in disbelief to have that goal disallowed.

I just don't see it and I don't think they even appealed for it. It was a poor decision in that context and would have been painful to take." He added that the penalty was deserved, describing the ending as "pretty eventful." Bristol City manager Michael Skubala was equally vocal about the officiating.

He highlighted the handball call, noting that the linesman had flagged for a handball by Jason Knight while Rob Atkinson headed the ball. "It was a crazy decision which didn't need to happen.

The referee has two angles – his and the linesman's – and the decision was not the right one," Skubala said. He also lamented that his team had created the bigger chances and should have walked away with three points.

Overall, the match was a showcase of Championship intensity: goals scored, chances created, and decisions that swung momentum. Both clubs demonstrated attacking intent, with Birmingham relying on late resilience and Bristol City showcasing early dominance.

The 2-2 draw leaves both sides with a point each, while the controversy surrounding the handball and off‑side calls will likely be discussed by fans and analysts alike. The result also keeps the promotion race tight, as each point remains crucial in the tightly packed league table.