The Owls led 1-0 at half-time after a trademark header by Jordan Rhodes.
But the Canaries secured their first league win in eight matches after second half strikes by man of the match James Maddison, Timm Klose and Nelson Oliveira.
The results extends Wednesday's winless run to five matches and leaves them 10 points shy of the top six.
At a bitterly cold Carrow Road, Owls head coach Carlos Carvalhal shuffled his pack, making three changes to his starting line-up. Ross Wallace, David Jones and Rhodes were handed first-team recalls, with Marco Matias, Jacob Butterfield and Steven Fletcher dropping out.
Rivelin Valley Road Sheffield: Body found after police search of Rivelin Valley
Hosepipe ban: Reservoir near Sheffield less than 15 per cent full as photos show how water levels have plunged
Sheffield weather: Met Office issues thunderstorm warning as heatwave set to end with heavy rain and lightning
The Long Blondes: Leadmill cancel gig after allegations surface against band creator Dorian Cox
Sheffield businessman Rong Ren ordered to pay £1.1m by courts over phones scam
Striker Fletcher and full-back Jack Hunt missed out due to knee injuries.
It was a cagey affair early on. Mario Vrancic curled a 25-yard free-kick over the bar for Norwich after Glenn Loovens had upended Alex Pritchard.
The hosts monopolised possession in the opening quarter of an hour and James Maddison blazed over when well-placed.
Moments later, Rhodes stooped to head in Adam Reach's lovely cross following good work by Morgan Fox to put the Owls ahead. It was a predatory finish by Rhodes and capped off a fine spell of Wednesday pressure.
Rhodes also netted a brace against Norwich in the 5-1 victory at Hillsborough last March.
For our Owls news and opinion on twitter follow hereThe Canaries, without a home win since September 9, should have restored parity in the 27th minute when Maddison slipped in Nelson Oliveira after a wayward Barry Bannan pass but the Portugal international fired wide with just Keiren Westwood to beat. Oliveira ought to have at least hit the target.
Westwood then produced a smart stop to turn away Oliveira's header following a dangerous delivery by Norwich skipper Ivo Pinto.
At the other end, Reach, an influential figure in the first half, fizzed a right foot effort well wide after the Canaries only partially cleared Ross Wallace's centre.
Wednesday almost increased their advantage on the stroke of half-time but Angus Gunn blocked Gary Hooper's shot on the turn with his chest.
It was no surprise to see Norwich make a tactical change, replacing the disappointing Josh Murphy for Marley Watkins.
Westwood thwarted the lively Oliveria again, tipping his bullet header over the crossbar.
For more news from Hillsborough click hereThe Canaries continued to threaten and Oliveria fed Vrancic, who's fierce strike went into the side-netting.
Gunn was equal to Jones' free-kick in a rare Wednesday attack but the hosts deservedly equalised in the 55th minute through Maddison. He lashed home after Westwood could only parry Pritchard's shot.
The Owls responded reasonably well to Norwich's leveller and Reach tried his luck from long range but his low effort was comfortably saved by Gunn.
But Norwich complete the turn around in the 69th minute, Klose rising highest to power in Maddison's corner. It was awful marking from the set play by Wednesday as Klose was allowed to nod home unchallenged.
Hooper, facing his old club, slotted home after Bannan's fierce shot broke kindly to him but it was correctly ruled out for offside.
Norwich always looked capable of adding to their lead and Oliveira duly added a third in added on time from the penalty spot after Harrison Reed was hacked down by Bannan.
Norwich: Gunn; Pinto, Klose, Hanley, Stiepermann; Reed, Vrancic; Murphy (Watkins HT), Pritchard (Trybull 79), Maddison (Zimmermann 90); Oliveira. Substitutes: McGovern Jerome, Hoolahan, Wildschut.
Owls: Westwood; Palmer, Loovens, van Aken, Fox (Nuhiu 78); Wallace, Bannan, Jones (Lee 69), Reach; Hooper, Rhodes. Subtitutes: Wildsmith, Venancio, Pudil, Butterfield, Joao.
Referee: James Linington (Newport)