Having survived an early Brighton onslaught, Reading took the lead in the 14th minute with their first attack, Ian Harte's free-kick taking a huge deflection to wrong-foot Albion goalkeeper Peter Brezovan.
Vicente struck the bar as Brighton responded before the home side missed a glorious chance to level in the 51st minute when Ashley Barnes had his penalty saved by Federici, who made several more fine stops.
The victory - Reading's fourth in a row and 13th in 15 games - means they are also now six points clear of third-placed West Ham as they bid for a return to the Premier League. It also sets up a mouth-watering top-of-the-table clash with Southampton at St Mary's on Friday night.
Veteran goalkeeper Maik Taylor saved well from Chris Maguire, Luke Varney and Greg Halford as Portsmouth put the pressure on in the first half. But the Lions went ahead eight minutes before half-time as Andy Keogh twisted and turned on the edge of the box before passing to strike partner Harry Kane, who stepped inside his marker and unleashed a fierce drive into the bottom left corner.
Five minutes into the second half, Kane wasted a glorious chance to double the Lions' advantage. Having taken a long ball from Josh Wright and beating two defenders, he dallied over the finish and was eventually crowded out.
Maguire thought he should have had a penalty late on after going down in the box, but referee Mark Halsey waved away the Scot's protests, while Varney's header from Halford's long throw deflected against the crossbar. In the dying seconds, Kelvin Etuhu wriggled in from the right and fired a 25-yard thunderbolt at the top corner, only for Taylor to produce a fine save.
Millwall are now nine points from safety with only four games to go while Pompey - who last played in the third tier of English football in 1982-83 - are nine points from safety.