Norwich City's all blacks stormed to a marvellous victory in Wales – their first away success of the Premier League season – to extend their unbeaten run to 10 matches in all competitions.

The Canaries swept into a 3-0 interval lead at the Liberty Stadium but had to withstand a rousing second-half fightback from Swansea, who struck twice in the space of eight minutes after the break before Robert Snodgrass scored direct from a free-kick 13 minutes from time to just about make the game safe.

Even then, there was a late Swansea goal to keep the travelling fans on edge in stoppage time.

Steven Whittaker's first goal for the Canaries gave them the lead in the 16th minute, a superb finish after a one-two with Snodgrass, and they struck twice in four minutes just before half-time.

First Sebastien Bassong scored for the third time in four games, heading in Grant Holt's cross, before Holt headed home from a Snodgrass free-kick for his fourth of the season.

Swansea were back in contention when Michu and Jonathan de Guzman scored before an hour had been played, but Snodgrass made it 4-2 from a free-kick after Swansea skipper Ashley Williams had pulled down Holt.

Michu scored his second of the match in stoppage time to make it 13 for the season, but the Canaries held on to make it nine league games without defeat – their best unbeaten Premier League run. It was their first away victory since Easter Monday.

There were two changes to the Norwich line-up after the 2-1 win over Sunderland, with Russell Martin and Jonny Howson recalled, with Ryan Bennett not travelling and Alex Tettey not figuring in the 18.

Full-back Marc Tierney and midfielder David Fox were brought into the 18 as two of the seven substitutes.

There were also two changes for Swansea after their 2-0 win at Arsenal.

Striker Danny Graham was recalled, making his first start since October 6. Graham scored six times in his previous four games against the Canaries.

Wayne Routledge was also back in the side after recovering from an ankle injury.

Itay Schechter was relegated to the bench, while midfielder Leon Britton was absent from the 18.

The Canaries kicked off, wearing their black away kit, and Snodgrass forced a corner in the first minute. It almost bore fruit as Johnson got in a glancing header from Snodgrass' kick, forcing keeper Tremmel to parry it.

Norwich, with Russell Martin operating in the centre of defence on his recall, were enjoying plenty of possession in the opening minutes but Johnson spoiled one promising move with an overhit pass when attempting to find Holt.

Swansea threatened in the 10th minute when Davies turned back a diagonal pass from De Guzman into the path of Graham, who swivelled to strike a powerful shot past the post from the edge of the area.

Norwich went desperately close after 13 minutes when Howson latched on to a poor header by Davies and struck a right-foot shot from more than 20 yards that struck the base of the post, the rebound falling unkindly for Pilkington.

As the Canaries kept pressing, Garrido crossed from the left, Tremmel struggled to deal with the cross and Johnson hooked in a shot that the keeper grabbed above his head.

Then, in the 16th minute, the visitors took a well-deserved lead through a superb effort from Whittaker, his first goal for the club.

Taking possession just inside the Swansea half, he advanced and played a one-two with Snodgrass before weaving his way past two defenders and striking a perfect left-foot shot just inside the post.

A foul by Howson on Ki gave Swansea a free-kick 25 yards out, but De Guzman curled it straight into the wall.

Referee Webb stopped play to talk to Holt about his side taking too long over a free-kick, not the first time the official had urged the Canaries to get on with it.

They continued to hold the upper hand, however, and Snodgrass brought Tremmel into action again after working his way into the Swansea area.

Swansea went closest yet after 28 minutes when Graham outjumped Whittaker from De Guzman's cross and headed against the bar with Bunn beaten.

Michu flashed a header wide from Rangel's cross as the hosts began to enjoy more possession.

The Spanish striker almost engineered a freak equaliser on 34 minutes when his low drive struck Routledge and took a wicked deflection that just rolled the wrong side of the post.

But five minutes before the break, Bassong scored his third goal in four matches to extend Norwich's lead.

Pilkington did well, from his position on the floor, to feed the ball to Holt on the left and the skipper turned on to his right foot and curled the perfect cross to the far post where Bassong's downward header beat goalkeeper Tremmel and defender Davies and rolled in.

The goal was greeted with stunned silence from the home crowd, while many were already making their way out for half-time.

Better was to come from the Canaries as they moved into a 3-0 lead one minute before the break.

Snodgrass floated in a free-kick from the right and Holt, completely unmarked, planted a firm header past Tremmel for his fourth goal of the season.

Russell Martin was booked for a foul on Michu in the final minute of the half, but Ki curled the resulting free-kick straight into Bunn's arms.

• Half-time: Swansea City 0, Norwich City 3

Swansea forced a corner in the opening minute of the half but De Guzman's kick was overhit and Norwich were able to cleat comfortably.

Johnson almost scored an audacious fourth less than three minutes after the break when Snodgrass floated the ball in and he jabbed a volley on to the bar with his left foot while Swansea froze in the hope of an offside decision.

With 51 minutes gone, however, Swansea threw themselves a lifeline as Davies crossed from the left and Michu found enough room to swing his left foot and fire just inside the post for his 12th goal of the season.

The stadium, like a morgue for much of the first half, was suddenly buzzing and Graham might have reduced the arrears further when Michu's through-ball set him up for a first-time effort that Bunn managed to hold on to.

The Swans did strike again, however, on 59 minutes when De Guzman scored their second.

Dyer got away from Garrido on the right and hooked in a cross that Bunn left to Russell Martin, who headed clear, but only as far as De Guzman, who volleyed smartly past Bunn.

Norwich were penned in their own half and in a rare break, Holt's header from a Garrido free-kick was no problem for Tremmel.

Garrido had to produce a desperate challenge on Graham midway through the half to stop the striker levelling, but it was his last involvement for Swansea as he made way for Shechter.

Swansea thought they had equalised when Shechter hooked the ball in from close range after 71 minutes – the goal music was even played in the stadium – but Michu was penalised for heading the ball out of Bunn's hands.

Swansea skipper Williams was booked for hauling down Holt as he chased Hoolahan's through-ball in a one-on-one, but justice was done as Norwich scored from the free-kick.

Snodgrass curled in the direct free-kick for his third goal of the season and his second in successive away games, as Tremmel dived in vain to his left.

Davies had to clear a cross from Pilkington as City looked for a fifth and, with seven minutes left, Holt made way for Morison.

Michu almost reduced the arrears when he shot just wide as he slid into the six-yard box.

Chico narrowly cleared the bar with a long-range shot three minutes from time.

De Guzman was booked for protesting about a Norwich free-kick award in the final minute.

Barnett replaced Whittaker before Swansea scored a third in stoppage time, Michu heading in from De Guzman's cross.

• Swansea City: Tremmel; Rangel, Chico, Williams, Davies; Dyer, De Guzman, Ki, Routledge; Michu, Graham (Shechter, 69). Subs (not used): Cornell, Monk, Tiendalli, Agustien, Bartley, Moore.

• Norwich City: Bunn; Whittaker (Barnett, 90), Russell Martin, Bassong, Garrido; Howson, Johnson; Snodgrass, Hoolahan, Pilkington; Holt (Morison, 83). Subs (not used): Rudd, Tierney, Fox, Elliott Bennett, Jackson.

• Referee: Howard Webb (South Yorkshire)

• Attendance: 20,294

• Goals: Swansea: Michu (51, 90), De Guzman (59). Norwich: Whittaker (16), Bassong (40), Holt (44), Snodgrass (77)

• Bookings: Swansea: Williams (75), Rangel (89). Norwich: Russell Martin (45)