Swansea City closed the gap at the top of the Championship table to four points as they overcame Rotherham United at the New York Stadium.
Steve Cooper’s side maintained their grip on one of the automatic promotion spots, as they remain second in the table with this victory, and narrowed the deficit to leaders Norwich following the Canaries draw against Middlesbrough earlier in the day.
First-half goals from Conor Hourihane and Matt Grimes put the visitors in command in Yorkshire.
And although Rotherham pulled one back through Freddie Ladapo after the break, substitute Jay Fulton made an immediate impact from the bench to restore the two-goal buffer and secure the points.
A fourth consecutive victory away from home moved the Swans onto 50 points from 26 games.
Cooper, who had overseen just one defeat from eight league fixtures in Yorkshire since his appointment in the summer of 2019, made two changes from the draw with Brentford in midweek.
Ryan Bennett came in for the suspended Kyle Naughton in the heart of defence, while Yan Dhanda was preferred to Fulton in midfield.
The Swans headed to the New York Stadium on an eight-match unbeaten run and searching for a fourth consecutive away victory in all competitions.
But they struggled to establish their rhythm as a scrappy opening 25 minutes ensued against the Millers, who had taken seven points from their previous three games.
Nevertheless, the visitors continued to plug away and broke the deadlock in the 28th minute following a good spell of attacking pressure.
Although Andre Ayew failed to head Connor Roberts’ cross towards goal, Jamal Lowe kept the danger alive by finding Dhanda.
The midfielder neatly cushioned the ball into the path of Hourihane, who struck a sweet half-volley into the bottom corner past a flat-footed Jamal Blackman for his second goal in as many league games since arriving on loan from Aston Villa.
The Swans had a great chance to double their lead nine minutes later as Lowe raced onto Roberts’ neat through ball, before drawing a fine save out of Blackman from a tight angle.
But the Rotherham goalkeeper was helpless from the resulting corner; punching Hourihane’s delivery straight to the edge of the penalty area, where Grimes flashed a ferocious first-time drive into the back of the net.
The skipper, who scored the winner when the sides met at the Liberty in November, took his tally for the season to four goals – his joint-best return in a single campaign – and made it three in as many games following his FA Cup double against Nottingham Forest last weekend.
Two points from safety but with two games in hand on the teams above them, Rotherham looked to respond in first-half stoppage time as the in-form Matt Crooks embarked on a strong run into the heart of the defence.
But the midfielder, who arrived in this game with three goals from his previous two outings, sent his eventual shot way over the crossbar.
Despite Paul Warne’s side winning just once in their last five at the New York Stadium, they began the second half with purpose and grabbed a lifeline in the 65th minute; finding the net in the second half for a seventh consecutive game.
The Swans failed to deal with Wes Harding’s long throw into the box; allowing substitute Ladapo to climb above Roberts and head past Freddie Woodman.
That was the first goal the visitors had conceded away from home in 388 minutes since their 2-0 defeat at Derby in December.
However, they responded in a buoyant manner and restored their two-goal advantage just nine minutes later.
Less than 60 seconds after climbing off the bench, Fulton made an immediate impact as he rounded off a quickfire counter by neatly flicking home Jake Bidwell’s cross at the near post.
The Swans – scorers of three goals away from home for the first time since the 4-1 win at Reading on the final day of last season – continued to push for more, with Blackman doing well to deny Marc Guehi’s header.
But the damage was done and they subsequently saw out their fifth win over the Millers from the last six encounters between the sides.
Rotherham United: Jamal Blackman; Matthew Olosunde (Ryan Giles, ht), Richard Wood (captain; Clark Robertson, 58), Michael Ihiekwe, Angus MacDonald, Wes Harding; Shaun MacDonald (Freddie Ladapo, ht), Jamie Lindsay, Ben Wiles; Matt Crooks (Florian Jozefzoon, 79); Michael Smith (George Hirst, 76).
Subs not used: Josh Vickers, Viktor Johansson, Trevor Clarke.
Swansea City: Freddie Woodman; Ben Cabango, Ryan Bennett, Marc Guehi; Connor Roberts, Matt Grimes (captain), Conor Hourihane, Jake Bidwell; Yan Dhanda (Jay Fulton, 74); Andre Ayew, Jamal Lowe (Jordan Morris, 83).
Subs not used: Ben Hamer, Ryan Manning, Joel Latibeaudiere, Cameron Evans, Daniel Williams, Ollie Cooper, Jordon Garrick.