The Royals had taken an first-half lead through Mikele Leigertwood, but Federici's mistake early in the second stanza drew the Bluebirds level.

The Australian shot-stopper mis-hit a regulation clearance straight to Cardiff's Jay Bothroyd 30 yards out and the Bluebirds striker coolly rounded Federici before slotting it home for the leveller.

Federici claimed contact from Cardiff's Michael Chopra forced him to mis-hit the kick, but the referee let the goal stand.

The Socceroo redeemed himself with a good save to deny Craig Bellamy later in the half, before Mathieu Manset looked to have won it for the Royals with a 90th-minute goal.

But almost seven minutes into stoppage-time, Bellamy equalised to deny Reading an important win as they push for the playoffs.

Elsewhere in the Championship, Socceroo Scott McDonald was back after the Asian Cup as a 70th-minute substitute in Middlesbrough's 2-0 victory over Scunthorpe United, while Neil Kilkenny was an unused sub in Leeds' 2-2 draw at Hull City.

Meanwhile, Shane Lowry put in a full shift at the back and fired a late chance over the crossbar as Sheffield United lost 1-0 at home to Leicester City.

In England's League One, James Wesolowski got a start at the unfamiliar right-back role but was replaced at half-time as Peterborough United won 5-3 over Sheffield Wednesday.

In Italy's Serie A, Mark Bresciano was a 74th-minute substitute as Lazio left the San Siro with a point after a goalless draw with leaders AC Milan. It was Bresciano's first appearance since January 9.

In Holland's Eredivisie, Adam Sarota was an unused sub, while Tommy Oar and Michael Zullo were not in the Utrecht matchday squad which drew 0-0 at De Graafschap.