A first-half strike by Jimmy Floyd Hasselbaink gave the Bluebirds their fourth straight home victory as they moved closer to the play-off positions.
He seized on a pass from Gavin Rae in the 36th minute before sliding the ball past the on-rushing Lee Grant in the visitors' goal.
Wednesday took control of the match during the second period but City defended magnificently to continue their impressive run.
The Bluebirds showed one change with Hasselbaink restored to the starting line-up in place of Aaron Ramsey.
Amongst the substitutes was new loan signing Peter Enckelman.
City pinned Wednesday back on to the defence in the opening minutes and both Hasselbaink and Peter Whittingham had shots blocked as the Bluebirds piled on the pressure.
The Owls won their first corner in the 28th minute after Michael Oakes had pushed a Leon Clarke shot around the post.
Two more corners three minutes later spelt danger for City, but the defence held firm and they went back on to the attack only for Grant to tip Hasselbaink's header over the bar.
When the deep corner came over Roger Johnson rose highest but his header clipped the woodwork.
Hasselbaink finally hit the target for his fifth league goal of the season and Joe Ledley should have doubled the lead in the 42nd minute, but fired wide with only the visitors' keeper to beat.
The second half began with City back on the offensive and Glenn Loovens' header in the 51st minute rattled the Owls crossbar.
Second-half substitute Ronnie Wallwork had a close-range header tipped over by Oakes and Clarke went close before Brian Laws brought on Deon Burton to add more fire-power at the front.
The visitors had certainly raised the tempo in the second half and City were hanging on for long spells but Loovens and Johnson were superb for the Bluebirds who held out for a deserved victory.