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 Championship 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.
Brighton, meanwhile, were beaten at home for the first time in 10 games – dating back to December 17 – and they stay two points behind Cardiff in sixth after their winless streak stretched to four.
Brighton, looking to bounce back from Good Friday’s defeat at Burnley, made a flying start and twice came close to scoring inside five minutes.
First, Barnes got on the end of Vicente’s free-kick but his effort was saved by Federici. Barnes threatened again moments later but shot wide when well placed from 12 yards.
The Seagulls continued to dominate the early proceedings and Vicente drew a fine acrobatic save from Federici to keep out his long-range strike.
But Reading took the lead with their first attack. Gonzalo Jara Reyes was penalised for a foul on Noel Hunt and Harte’s free-kick, which took a big deflection, left Brezovan rooted to the spot.
Brighton almost conjured up an immediate response but another fine save from Federici, tipping over Gary Dicker’s left-footed effort from 18 yards, ensured they remained behind.
The home side had a penalty claim after Kaspars Gorkss bundled over Craig Mackail-Smith, but it was waved away by referee Mick Russell.
Alex Pearce felt he should have done better from Jobi McAnuff’s free-kick, shooting into the side-netting from a tight angle, before Hunt cut in and curled an effort wide.
Vicente missed an excellent chance to pull Brighton level seven minutes before the break. A well-worked move resulted in the Spaniard being through on goal but he scooped his shot against the bar.
A stunning save from Brezovan then prevented Reading from doubling their advantage on the stroke of half-time.
Tomasz Cywka delivered a cross which was met by a fine header from Hunt but Brezovan brilliantly denied him.
Brighton squandered a huge opportunity to equalise when they were awarded a penalty six minutes into the second half. Pearce brought down Barnes, who then saw his kick saved by Federici.
Another fantastic save from Federici prevented Mackail-Smith levelling in the 58th minute while Pearce planted a header against the bar as Reading looked to wrap up the points late on.