On-the-whistle report: Swansea City 1 Rotherham United 0
On a wet afternoon in South Wales, the injury-hit Millers pressed for an equaliser after being second best for much of the contest but were kept at bay by the home side who survived a huge penalty shout.
Rotherham's late spurt was inspired by the introduction of Kyle Vassell who was too much to handle for a home side who had appeared in charge after taking a first-half lead.
The Millers might have snatched an unlikely point late on when substitute Michael Smith's 85th-minute goalbound header from Vassell's cross looked to have been handled but the referee waved away frantic spot-kick appeals.
The loss left Paul Warne's men still in 19th place in the table.
Rotherham's Jamal Blackman was the first goalkeeper to be called into action as he reacted sharply to parry Liam Cullen's 15th-minute header from a corner.
Swansea were enjoying most of the possession but hadn't troubled the visitors too much until they took the lead just before the half-hour mark.
Matt Grimes' effort from the edge of the area lacked real power but somehow squirmed past Blackman.
The Millers should have been two behind after 39 minutes as a horrible moment of misjudgment by their keeper left the Swans with an empty net.
Blackman rushed out in direction of the corner flag only to be beaten to a ball that held up on the wet turf by Connor Roberts. When the cross skimmed back towards goal, Jamal was guilty of a terrible miss as he hit the post.
Rotherham's first effort on target came a minute before half-time when Jamie Lindsay's low drive forced a save from Freddie Woodman.
Already without four-long injury victims, the Millers had been hit by further absentees as centre-half Richard Wood and striker Freddie Ladapo pulled out of the squad.
New EFL rules meant they were allowed to name nine subs, but they could muster only seven, with defenders Adam Thompson and Trevor Clarke in the squad for the first time this season.
Manager Warne opted for fit-again Blackman in goal, despite Viktor Johansson's impressive debut against Preston North End, while left-back Joe Mattock wasn't risked after hamstring trouble.
George Hirst was giving the starting role up front in place of Ladapo but didn't take his chance to impress.
Warne rang the changes at half-time and in the second half, using four subs, and gradually his side came into the contest to the point that they were continually knocking on the Swas' door in the final quarter of an hour.
Blackman saved easily from Cullen and smartly from Yan Dhanda's free-kick and only a brilliant Wes Harding block on Jake Bidwell prevented the home team doubling their advantage in the 74th minute. Two minutes later, Bidwell was left holding his head in his hands when he sent a header wide when he should have scored.
From then on, it was all Rotherham.
Vassell managed stooped to direct a header on target in the 83rd minute but his effort lacked power and Woodman comfortably collected.
The Millers man did much better as the provider for Smith's header that sparked the handball controversy.
In time added, Rotherham had a final opportunity to level but Angus MacDonald skewed his half-volley over.
Goals: Grimes 28 (Swansea).
Swansea (3-4-1-2): Freddie Woodman; Ben Cabango, Ryan Bennett, Kyle Naughton; Connor Roberts, Jay Fulton, Matt Grimes, Jake Bidwell; Yan Dhanda (Kasey Palmer 77); Liam Cullen (Wayne Routledge 74), Jamal Lowe (Korey Smith 87). Subs not used: Steven Benda, Ryan Manning, Joel Latibeaudiere, Tivonge Rushesha, Oli Cooper, Daniel Williams.
Rotherham (4-4-1-1): Jamal Blackman; Matt Olosunde (Trevor Clarke H-T), Michael Ihiekwe, Angus MacDonald, Wes Harding; Florian Jozefzoon (Kyle Vassell 62), Jamie Lindsay (Mickel Miller H-T), Dan Barlaser, Ben Wiles; Matt Crooks; George Hirst (Michael Smith 54). Subs not used: Viktor Johansson, Billy Jones, Adam Thompson.
Referee: Matt Donohue (Manchester).