Swansea City’s run of away wins came to an end as Ipswich Town claimed all three points at Portman Road.
The Swans had won three in a row on their travels coming into this game and Jay Fulton gave the visitors an early lead against the high-flying Tractor Boys with a glancing header.
However, goals from Jack Taylor and Conor Chaplin had the hoists ahead at the break.
A George Hirst penalty extended their advantage after the break, before the Swans had Liam Cullen sent off with just over 20 minutes to go after picking up a second booking.
Jamal Lowe pulled a goal back with a sensational solo effort in stoppage time but it was not enough to help Swansea salvage a point despite a brave late rally.
The Swans – showing one change from the draw with Sunderland as Fulton came in for the suspended Charlie Patino – made a bright start, enjoying plenty of the ball and posing questions of their hosts.
The visitors also pressed well, and an early chance came when Jerry Yates picked off a loose ball across the home area and unleashed a volley that was blocked away.
And the positive opening was rewarded when Lowe got on to a half-cleared free-kick and sent in a lovely cross that Fulton glanced home with his head.
Ipswich had a chance to respond immediately. A low corner delivery found Chaplin, but his effort was spooned over the bar from around 12 yards.
Carl Rushworth then held a speculative long-distance effort from Omari Hutchinson, before the Swans swept up the other end with Bashir Humphreys started a move that ended with Jerry Yates being blocked off as he looked to shoot.
But the hosts did level when Taylor produced a thunderbolt of a strike from distance that left Rushworth with no chance as his right-footed effort arrowed into the top corner.
It started a period of relentless Ipswich pressure. Rushworth made two vital saves as he first kept out Cameron Burgess’ header and then denied Hutchinson after he had robbed Humphreys just outside the Swansea box, with Hirst thrashing the rebound over the bar.
But the Swans keeper could not keep out Chaplin’s low effort a few moments later, getting a hand to the strike but seeing it find its way into the net.
The visitors looked to respond and enjoyed a good spell of possession, with Jamie Paterson getting in down the left only to see his cross deflected into the keeper’s hands.
At the other end, Rushworth made another crucial intervention as he got a hand to a Hutchinson cross with a pair of blue and white shirts waiting to turn home.
The Swans keeper then denied Hirst’s angled drive just before the break as the Swans went in a goal down.
Ipswich thought Leif Davis had made it 3-1 five minutes into the second half but his header was chalked off for a foul.
But it proved a brief reprieve. Harrison Ashby was adjudged to have fouled Luke Woolfenden at a corner, and Hirst stepped up to slot home the spot-kick.
Swansea threatened to find a way back into the game immediately as a raking Fulton pass found Cullen.
The striker controlled well to head in on goal, but Davis recovered well to make an important challenge for the home side.
Swansea came again, Matt Grimes finding Lowe in space, but the forward’s effort was blocked as he tried to make room for a shot.
But the visitors’ task was made even more difficult when Cullen saw red as he received a second booking for fouling Davis on the edge of his own area.
Ipswich substitute Dane Scarlett had chances to increase the home side's lead, but could not find the target with a pair of efforts.
Swansea then had a late chance to set up a nervy finish but Lowe saw his effort saved after the visitors had won the ball high up the pitch.
However, Lowe then produced a wonderful solo goal as he burned his man for speed and cut infield to round the keeper to fire home.
And Lowe so nearly conjured an equaliser when he again beat Davis for speed and sent the ball across the six-yard box, but Hladky claimed with pink shirts waiting to pounce as the late fightback came up short.
Swansea City: Carl Rushworth, Jay Fulton, Harry Darling, Matt Grimes (captain), Jerry Yates (Liam Walsh 70), Jamal Lowe, Jamie Paterson (Ollie Cooper 78), Josh Tymon, Liam Cullen, Harrison Ashby (Kyle Naughton 89), Bashir Humphreys.
Unused Substitutes: Andy Fisher, Ben Cabango, Nathan Tjoe-A-On, Sam Parker, Cameron Congreve, Kyrell Wilson.
Ipswich Town: Vaclav Hladky, Harry Clarke, Leif Davis, Sam Morsy (captain), Luke Woolfenden, Conor Chaplin (Dane Scarlett 77), Jack Taylor (Massimo Luongo 77), Cameron Burgess, Omari Hutchinson (Wes Burns 63), George Hirst (Freddie Ladapo 87) Nathan Boadhead (Marcus Harness 63).
Unused Substitutes: Christian Walton, Kayden Jackson, Cameron Humphreys, Axel Tuanzebe.
Referee: Sunny Singh Gill