Swansea City suffered defeat on Teesside as Emmanuel Latte Lath’s brace settled matters at the Riverside Stadium.
The Middlesbrough striker had broken the deadlock on the stroke of half-time after the Swans had been guilty of failing to clear a cross into their box.
And he then put the seal in the win for the hosts with a fine finish with 12 minutes to play.
His goals settled a scrappy contest low on clear-cut chances, and head coach Luke Williams will be frustrated his side did not claim a share of the spoils given there was little between the sides in general play despite Boro’s play-off aspirations.
But, once more, Swansea were on the wrong side of key moments in the game, particularly in failing to make more of a series of good deliveries into the box from Ronald and Josh Key during the opening half, and the manner in which the conceded the opener.
The Swans had shown two changes from the Easter Monday meeting with Queens Park Rangers; Jay Fulton came in for the injured Joe Allen, while Jamie Paterson was preferred to Ollie Cooper in midfield.
The visitors had the first opening of the game just four minutes in. Key’s lovely cushioned pass Ronald into space and his excellent cross found Jerry Yates unmarked, but the striker lost his footing as he looked to bring the ball down.
Middlesbrough responded, Sam Greenwood’s low shot then forced Carl Rushworth into a sharp stop at his near post.
Yates was then unable to hit the target as Ronald again delivered from the right to find the striker, but the Swansea number nine was stretching to reach the cross and unable to get over the ball with his header.
Finn Azaz fizzed an effort over at the other end, before Ronald and Key combined again at the other end to send the full-back into the box, where his cross was blocked.
Swansea were having real joy down the right and Yates fed Ronald in on goal, but the Brazilian mishit his shot and it flew harmlessly wide.
But the visitors suffered a blow when Josh Tymon took a kick on his calf from Isaiah Jones and was forced off, with Azeem Abdulai his replacement.
With half-time drawing near, Key made an important defensive header to deny Emmanuel Latte Lath a clean sight of goal from a Luke Ayling cross.
But the hosts took the lead in scrappy fashion in first-half stoppage time. Rushworth was unable to gather in a Jones delivery, and the Swans were guilty of failing to clear the loose ball, with Latte Lath able to win possession, turn and scuff a low shot into the net via the inside of the post.
Having been guilty of cheaply conceding, the Swans nearly benefited from a lapse in the Boro ranks as Dan Barlaser, under pressure from Fulton, sent a backpass just wide of the post with keeper Seny Dieng unable to get anywhere near it.
Jamal Lowe then should have done better when he dribbled into the box, but could only steer a low shot too close to Dieng after Matt Grimes had picked up a loose ball.
Swansea were having the better of this period of the game, but were unable to put together anything to cause Dieng any alarm between the Middlesbrough sticks.
Williams turned to his bench, bringing Liam Walsh, Liam Cullen and Ollie Cooper on for Fulton, Yates and Paterson respectively.
An increasingly rare forward foray from Boro ended with Harry Darling blocking a Greenwood shot, after Luke Thomas has got in down the left-hand side.
A surge from Ronald then won the Swans a free-kick in a dangerous position, but the visitors were unable to make anything of it as the final 15 minutes arrived.
Instead the hosts sealed the points, Azaz feeding Latte Lath in on goal, where the forward turned inside Darling before dispatching an unerring strike across Rushworth and into the far corner of the net.
Swansea City: Carl Rushworth, Josh Key, Jay Fulton (Liam Walsh 64), Harry Darling, Matt Grimes (captain), Jerry Yates (Liam Cullen 64), Jamal Lowe, Jamie Paterson (Ollie Cooper 64), Josh Tymon (Azeem Abdulai 29), Nathan Wood, Ronald (Aimar Govea 78).
Unused Substitutes: Andy Fisher, Ben Cabango, Charlie Patino, Bashir Humphreys.
Middlesbrough: Seny Dieng, Isaiah Jones (Sonny Finch 82), Daniel Barlaser, Finn Azaz (Anfernee Dijksteel 82), Matt Clarke, Lewis O'Brien, Luke Ayling, Jonny Howson (captain), Sam Greenwood (Alex Gilbert 87), Luke Thomas, Emmanuel Latte Lath (Sammy Silvera 82).
Unused Substitutes: Tom Glover, Rav van den Berg, Hayden Hackney, Lukas Engel, Law McCabe.
Referee: Rebecca Welch
Attendance: 24,780