Les Ferdinand rolled back the years with a vintage striking performance as Leicester overcame the rain and winds and Portsmouth's indecisive challenge to record a comfortable away win.
Ferdinand scored in the first half and Marcus Bent in the second, both from free-kicks from Muzzy Izzet, as Portsmouth stumbled to their seventh defeat in nine Premiership matches.
Portsmouth can have no complaints because although they enjoyed plenty of possession, they were out-fought and out-manoeuvred by a more physical Foxes side.
Leicester took the lead in the 31str minute when Izzet took a free-kick 20 yards out and former England striker Ferdinand smashed home his sideways pass with a shot which swerved past the startled Harald Wapenaar.
Wapenaar made a great save from Bent just after the break and in a rare moment of Portsmouth hope, Hayden Foxe shot into the sidenetting.
But after 59 minutes Izzet took another free-kick, this time on the right, and Bent got in front of the Portsmouth defence to score from six yards.
Portsmouth only improved when Matthew Taylor came on as a substitute in the 65th minute, bringing a sense of urgency to the home side and it was his sweetly struck volley five minutes later which struck the top of the Leicester bar.
Portsmouth had Arjan De Zeeuw, Alexei Smertin, Patrik Berger, Yakubu Ayegbeni and Teddy Sheringham booked in a hectic last 15 minutes as Leicester coped easily with everything Portsmouth had to offer.
Ferdinand came off with nine minutes remaining to a standing ovation from travelling Leicester fans who had appreciated his contribution to a worthy win.
The only blemish on a perfect afternoon for manager Micky Adams and his players was a booking in the last minute for midfield player Billy McKinlay in an incident involving Sheringham, but for Portsmouth it was hardly the ideal preparation for Tuesday's Carling Cup visit to neighbours and bitter rivals Southampton.