Claude Davis was sent off on his Rotherham debut as Bristol Rovers secured a convincing win to lift them off the bottom of the League Two table.
It was Davis who bundled over Ryan Brunt to earn Rovers a penalty, which was converted by midfielder Lee Brown.
The defender then received a second yellow card just before half-time.
Ellis Harrison's superb solo effort made it 2-0 and Joe Anyinsah drilled home a third before substitute David Noble grabbed a consolation.
It was a memorable first senior goal for 18-year-old Harrison, who came through Rovers' academy set-up.
He had only been on the pitch for two minutes, having come on as a substitute for Eliot Richards, when he picked up the ball on the half-way line, weaved through the Millers' defence and fired a fierce right-footed shot past Andy Warrington.
Forward Anyinsah had been out of favour under former Rovers boss Mark McGhee but has rediscovered his form since John Ward's return - his powerful low effort into the bottom-left corner was his second goal in three games.
Noble gave Ward's side a scare when he drilled in just two minutes after arriving on the field, but Rovers settled their nerves and claimed a valuable three points.
VIEW FROM THE DRESSING ROOM
Bristol Rovers manager John Ward told BBC Radio Bristol:
"We had to get through the first 20 minutes without a dent, and we did that pretty well.
"We scored two great goals and and showed a bit of quality.
"We had a discipline about the team and they responded very well.
"It gives the players a lift as they now know what they can achieve. They shouldn't limit themselves to what they can do."
Rotherham manager Steve Evans told BBC Radio Sheffield:
"I think if you make individual errors like that then you're going to lose football matches.
"I don't think there is a manager or coaching staff in the the country that can legislate for the three errors that gave Bristol Rovers three goals.
"We lacked energy, a spark, a passion but we still dominated the ball.
"We didn't work hard enough and if you don't work hard enough then you don't get the chance to play properly."
Sorry, we were unable to load match stats, please try again.