Goals from Andre Ayew and Conor Hourihane saw Swansea City return to second in the Championship and close to within two points of leaders Norwich by beating the Canaries at the Liberty Stadium.
At the end of an even first-half Ayew netted his ninth goal of the season as he turned and coolly finished from close range after Norwich had failed to deal with a set-piece.
Hourihane then scored for the third game in a row with a superb strike early in the second half, with the Swans then defending resolutely to collect a 15th clean sheet of the Championship season.
As well as being two points off the Canaries, the Swans also have a game in hand and are 10 games unbeaten in all competitions.
Additionally, they are a dozen games without defeat in SA1.
Kyle Naughton – on his 200th Swans appearance – and Jay Fulton had come into the Swansea side in the two changes from the win at Rotherham, with Ben Cabango and Yan Dhanda dropping to the bench.
Fulton, following on from his fine goal at Rotherham, made a sharp start, linking play well and allowed Hourihane and Connor Roberts to deliver threatening crosses.
Norwich responded with their own spell of pressure, but it was the Swans who looked the slightly more fluent of the teams in possession.
Skipper Matt Grimes made a superb challenge just inside his own box to deny Lukas Rupp a sight of goal after Ryan Bennett had half-cleared a ball intended for Teemu Pukki.
Rupp then nearly gifted Jamal Lowe the opener, as his loose pass caught out keeper Tim Krul, who just managed to recover his ground and clear the ball from the Swansea forward.
Pukki was played in at the other end, but dragged his effort wide of the target in what was proving an entertaining encounter, before Grimes fired at Krul from just outside the area.
The Swans then crafted their clearest chance yet just before the half-hour, Marc Guehi sliding a magnificent pass beyond Grant Hanley and into Lowe’s path, but Krul easily held the forward’s strike.
Hourihane was denied a third goal in three league appearances when his volley was well blocked by Max Aarons, but the Swans took the lead four minutes before the break when Krul spilled a Roberts corner.
Guehi and Jake Bidwell combined to find Ayew, and he calmly turned on the edge of the six-yard box and found the bottom corner.
Norwich almost immediately responded, Hanley seeing a header palmed away by Freddie Woodman as the Swans led at the break.
And they extended their advantage barely two minutes into the second half.
A loose pass fell to Fulton, who laid it off to Hourihane. The Irishman took a couple of touches to steady himself and fired a low left-footed drive into the bottom corner beyond a helpless Krul.
It made the on-loan midfielder the first Swansea player since Michu to score in each of his first three league appearances for the club.
Norwich needed a response, and they got on the front foot with Ben Gibson driving narrowly wide from long range.
The Canaries sent on Mario Vrancic, Onel Hernandez and Adam Idah as they looked to turn the game around, but instead it was the Swans who nearly further extended their lead.
A lovely flowing passage of play down the right ended with Roberts sending Fulton into the area, but his pull-back was well read and cut out.
The visitors were piling numbers forward, and Bidwell and Naughton made key blocks after Hernandez had worked space for himself on the edge of the box.
Into the final 20 minutes and the Swans defence continued to hold firm, with Cooper sending Jordan Morris on in place of Lowe to try and exploit the space being left by Norwich’s forward advances.
Morris had a penalty appeal waved away as he was barged over after seizing on a loose ball, but it did not matter in the final analysis as the Swans claimed another important win.
Swansea City: Freddie Woodman; Kyle Naughton, Ryan Bennett, Marc Guehi; Connor Roberts, Jay Fulton, Matt Grimes (captain), Conor Hourihane, Jake Bidwell; Jamal Lowe (Jordan Morris 75), Andre Ayew.
Unused Substitutes: Ben Hamer, Ryan Manning, Morgan Whittaker, Yan Dhanda, Joel Latibeaudiere, Ollie Cooper, Kieron Freeman, Ben Cabango.
Norwich City: Tim Krul, Max Aarons, Grant Hanley (captain), Lukas Rupp (Mario Vrancic 57), Przemyslaw Placheta (Onel Hernandez 57), Todd Cantwell (Kieran Dowell 85), Jacob Sorensen, Oliver Skipp (Adam Idah 57), Teemu Pukki, Kenny McLean, Ben Gibson.
Unused Substitutes: Daniel Barden, Christoph Zimmermann, Bali Mumba, Alex Tettey, Dimitris Giannoulis.
Referee: Simon Hooper