Steve MacLean scored a second-half winner from the penalty spot against fourth-placed Rotherham at the Kassam Stadium to boost Oxford United's play-off hopes.

The striker had his arm tugged back by Callum Kennedy, and referee Simon Hooper had no hesitation in pointing to the spot and brandishing a red card to the Rotherham left back.

MacLean’s penalty was half-saved by keeper Andy Warrington, but the ball spun over the goalline.

Simon Heslop had earlier marked his return to United’s starting line-up with the opening goal in the 18th minute, before the Millers equalised nine minutes before half-time.

Both Tom Craddock and Asa Hall had picked up slight knocks so they were on the bench, with Chris Wilder bringing in Jack Midson and Heslop.

And these two combined superbly to give United the lead.

Midson was fouled near the right touchline but stayed on his feet, sprinted towards the byeline and cut the ball back low for Heslop, who delivered a precise right-footed shot past defenders on the line from 15 yards for a fine finish.

Yet the U’s were caught asleep a bit as Kennedy threaded a pass through and Nicky Law reached it ahead of Ryan Clarke and prodded a shot past the keeper.

James Constable had two great opportunities to make it 3-1 when he twice went through with just the keeper to beat.

But the first time keeper Andy Warrington just got a touch to divert it for a corner, and with the second, much harder chance, his initial header was too heavy and it ran through to the goalkeeper.

Nevertheless, this was another fine win for the U's, and pushed them up to eighth in the table.

Oxford Utd: Clarke, Purkiss, Worley, Wright, Tonkin, Heslop, McLaren, Hall (Clist 68), Midson (Hackney 58), Constable, MacLean. Subs not used: Sangare, Eastwood, Payne, Craddock.

Att: 6,615 (395 from Rotherham) Booked: Hall.