Rotherham suffered more heartbreak on the road as their nine man were beaten 1-0 late on at Bristol City.
Billy Jones and Richie Towell were sent off for the Millers in the second half but they looked like holding on until Adam Webster scored an 86th-minute winner for the Robins.
It makes it three defeats in a row for the Millers, who slip into the relegation zone and now face an important game against Preston on New Year's Day.
The Millers battled hard and shaded the first half with Jon Taylor have four good opportunities, first shooting into the side-netting and then bringing a good save out of Niki Maenpaa, who also made a good parrying save from a fierce effort.
But two red cards in the space of eight second-half minutes rocked the Millers.
Jones walked for two yellow cards and then Towell joined him in the early bath for a challenge on Josh Brownhill.
The Millers looked like they were going to hold on until four minutes from time when Webstaer headed home Jack Hunt's cross, with the heroic Marek Rodak just beaten.
It could have been more in the end as Brownhill hit the crossbar, Rodak made a fine save to deny Jamie Paterson and substitute Andreas Weimann fired over when he should have scored.
Bristol City: Maenpaa, Hunt, Kalas, Webster, Dasilva (Eliasson 77), Pack, O'Dowda (Weimann 79), Brownhill, Paterson, Adelakun (Taylor 59), Diedhiou
Unused subs: O'Leary, Wright, Taylor, Weimann, Kelly, Morrell
Rotherham: Rodak, Jones, Ajayi Robertson, Mattock, Vaulks, Williams (Manning 76), Towell, Wiles (Raggett 67), Taylor (Forde 83), Smith
Unused subs: Price, Wood, Palmer Newell
Referee: Scott Duncan