Rotherham United beat Doncaster Rovers 2-1 in a derby that swung violently within the space of a few second-half minutes and ultimately rewarded the home side's composure when it mattered most.
Doncaster took an early lead through Sam Nombe in the third minute, and for much of the opening period they looked the more assured side. Jay McGrath was booked in the first minute, setting a fractious tone, and Neill Byrne followed him into the referee's notebook before half-time. Kian Spence was dismissed on the stroke of the interval, leaving Rotherham to begin the second half a man down.
Yet the restart produced extraordinary chaos. Three substitutions arrived at once for both sides, and Brandon Hanlan levelled matters almost immediately after the break. The momentum had shifted entirely.
Rotherham pressed their numerical disadvantage aside. Hanlan added a second in the 56th minute to put the hosts in front, and though Doncaster pushed to respond, Luke Molyneux and Jordan Gibson could not find a way through. George Broadbent was withdrawn in the 79th minute alongside further changes, and the game grew increasingly stretched.
Harry Gray rounded off the substitutions late on but the scoreline did not move again. Rotherham held what they had built.
A difficult afternoon for Doncaster, who led early and still lost. Rotherham showed more efficiency when the game opened up, and that made the difference.
Recap generated from the event timeline. Editorial team review by request. How we use AI.