Matt Taylor made a blistering break down the left and did well to find the space for a cross. It took a deflection as Derek Geary stretched and almost dropped over Wednesday keeper Kevin Pressman.
Pressman reached it and Jon Beswetherick headed out but Todorov was left unmarked on the edge of the box and pounced with a stinging low shot.
Pompey were furious when ex-England star Paul Merson hobbled off after just 25 minutes complaining he had been twice clattered by Wednesday players.
Each time referee Paul Danson refused Merson's pleas for free-kicks and the Pompey playmaker was still protesting as he limped off.
Portsmouth were still reorganising when Wednesday levelled two minutes later through youngster Leon Knight with his third of the season.
The 20-year-old, who is on a year's loan from Chelsea, darted in and flicked the ball in as Arjan de Zeeuw tried to shield the ball back to keeper Shaka Hislop.
Substitute Gary O'Neil, who replaced Merson, came close to reclaiming the lead after 31 minutes but Pressman produced a superb reaction save diving to his left.
O'Neil tested Pressman with another long-range effort in between two dangerous headers from Todorov.
The first was high but the second just before the break came after Kevin Harper's deep cross.
The Bulgarian's header hit the bar and Taylor agonisingly hoisted the rebound over the open goal.
And it was Todorov who restored Portsmouth's lead seven minutes into the second half with another well placed low shot rounding off a slick move involving O'Neil and Vincent Pericard.
Todorov was involved again in the third in the 63rd minute. His cross found Pericard unmarked and he unselfishly squared the ball to O'Neil, who slotted in a simple shot