City 1 Arsenal 0
The Canaries were rock solid from front to back throughout the match, harrying their illustrious opponents all over the pitch and restricting them to only a handful of half-chances.
It was a fully-deserved first Premier League victory of the season for the Canaries and afterwards a delighted City boss Chris Hughton told Canaries Player: “I thought we deserved it.
"We got a performance that was worthy of the win today, and that's from all 11 players that were on the park.
"We looked quite fresh towards the end. You know that Arsenal can open you up, but we were able to restrict them to minimal chances, and that was the key.
"It's all about accumulating points, and we did that today. If you can get those points with a good performance against one of the bigger teams, then it will lift the players and the supporters.
"We accept that we have to give the fans something to shout about, and the fans were magnificent today.
"When we needed them towards the end, that's when they were at their most vocal. I'm really pleased for the fans, they deserve it."
City lined up in a 4-2-3-1 formation at the start, with Michael Turner coming back in to partner Sebastien Bassong in the centre of defence and Alex Tettey and Bradley Johnson forming the central midfield partnership.
With Anthony Pilkington and Elliott Bennett on the flanks and Wes Hoolahan buzzing around behind skipper Grant Holt, it was an attacking line-up for the Canaries.
They started the game brightly too, with Pilkington firing a shot just wide of the post in only the second minute.
Arsenal quickly got into their stride and enjoyed more of the possession in the opening exchanges, Lukas Podolski firing across goal and wide in their most dangerous attack so far.
But City were harrying the visitors brilliantly all over the pitch and their combative start to the game paid dividends as they took the lead in the 19th minute.
Tettey deserves a lot of the credit after his stinging drive from 25 yards was spilled by Arsenal ‘keeper Mannonne and rebounded invitingly into the six-yard box for Holt to arrive and coolly slot home.
In the minutes that followed City’s competitiveness – particularly in central midfield – continued to be a factor, although Johnson’s enthusiasm for the task earned him a booking for a foul on Cazorla.
In the 34th minute the Canaries had a great chance to double their lead as Turner met Pilkington’s excellent in-swinging corner with a firm header which flew wide.
Half-time: Norwich City 1, Arsenal 0
After the break Arsenal had a dangerous attack in the 51st minute, when Ruddy punched Jenkinson’s ball against Cazorla and Giroud’s shot on the turn went wide.
Three minutes later Wes Hoolahan rolled the ball past Mannone into the net after he had been put through by Holt, but as the offside flag had been raised all he earned for his pains was a yellow card from referee Lee Probert.
And another soft booking came on 61 minutes, this time Holt arousing Mr Probert’s displeasure for protesting another offside decision.
With 20 minutes to go Turner was booked for a foul on Giroud on the edge of City’s box but Cazorla’s free-kick was comfortably saved by Ruddy.
Arsenal suffered a setback on 73 minutes as Alex Oxlade-Chamberlain limped off the pitch minutes after coming on and was replaced by Andrey Arshavin.
City made their first change in the 78th minute as Elliott Bennett left the pitch to a standing ovation to be replaced by Robert Snodgrass.
With ten minutes to go Holt burst clear but confronted by Mannone tried a delicate chip which went straight to the Arsenal ‘keeper.
Arsenal made their final change on 82 minutes as Serge Gnabry replaced Aaron Ramsey.
As the game entered injury time City made two more changes, Steve Morison replacing Holt and Ryan Bennett coming on for Hoolahan.
Final score: Norwich City 1, Arsenal 0
Norwich City: Ruddy, Martin, Johnson, Bassong, Turner, Holt (c) (Morison 89), Pilkington, Hoolahan (R.Bennett 90), E.Bennett (Snodgrass 78), Garrido, Tettey. Subs not used: Rudd, Howson, Jackson, Surman.
Arsenal: Mannone, Mertesecker, Vermaelen (c), Arteta, Podolski (Oxlade-Chamberlain 64) ((Arshavin 72)), Santos, Giroud, Ramsey (Gnabry 82), Cazorla, Jenkinson, Gervinho. Subs not used: Martinez, Wilshire, Djourou, Coquelin.