Skipper Grant Holt gained the ultimate revenge over Reading when he scored seconds from the end of stoppage time to give Norwich City another dramatic late victory at Carrow Road.

Holt, sent off in the 3-3 Championship draw between the two clubs back in November before his red card was rescinded, slid in to tuck home a centre by Andrew Crofts with less than 10 seconds of the four extra minutes left – his 14th goal of the season.

It was another remarkable finish to an incident-packed afternoon as Reading, reduced to 10 men by a red card for Jem Karacan after 65 minutes, looked set to hold on to a point thanks to a brilliant goalkeeping performance from Adam Federici.

City took the lead in the 16th minute when Henri Lansbury scored for the second home game in a row after brilliant work by Wes Hoolahan.

Holt missed a golden chance to make it 2-0 before Shane Long equalised in the 26th minute, tucking home a cross from Jimmy Kebe for his fifth goal in four games against Norwich.

Federici made the first of a string of great saves to deny Holt before the interval and Reading had loud appeals for a penalty rejected straight after the break when David Fox may have fouled Jay Tabb.

There was further controversy when Karacan was sent off for a high challenge on Fox but with further great saves by Federici from Crofts, Hoolahan and Holt and late miss by Hoolahan, City looked set to be denied.

Holt ensured it was not the case and kept the Canaries' promotion challenge bubbling along in another dramatic finish.

The one negative for City was the loss of defender Leon Barnett with what looked like a hamstring injury in the second half.

Lambert made two changes to the starting eleven from the 2-1 defeat at Burnley, recalling midfielder David Fox and striker Chris Martin in place of defender Zak Whitbread and forward Simeon Jackson, both relegated to the bench.

Midfielder Andrew Surman, out of action with a knee injury since the end of November, was named among the substitutes, with defender Marc Tierney dropping out of the 18.

Reading recalled midfielder Brian Howard and included forward Hal Robson-Kanu.

Before kick-off, defender Russell Martin received his player of the month award for January.

Ward conceded a corner in the opening seconds and though Howard's kick was a poor one, Russell Martin sliced it into the air and City struggled to clear before Chris Martin finally gained control and hammered the ball away.

A foul on Long handed Reading a free-kick five yards outside the penalty area. Harte, booed mercilessly for his part in Holt's sending-off at Reading, took it but hoisted an awful shot into the crowd, much to their delight.

City's first worthwhile effort came in the eighth minute when Chris Martin got his head to Russell Martin's cross but Federici was right behind it.

Hoolahan set up Russell Martin, in a huge amount of space, for another cross to Chris Martin but the striker didn't connect cleanly with his shot and it took a deflection before Federici grabbed it gratefully.

There were optimistic appeals for a penalty when Chris Martin went down as he bustled past Ingimarsson.

Harte conceded the first corner at the other end and though Fox's kick was overhit, Lansbury managed to retrieve and cross towards Fox, who teed up Holt for a volley that went just over the top.

Chris Martin tested Federici with a shot from wide on the left after Hoolahan picked him out but as Reading broke, they won another free-kick, wide on the right. Harte this time curled it straight into Ruddy's arms.

The Canaries were looking bright and they moved ahead in the 16th minute with Lansbury's second goal in successive home games.

Drury's free-kick from the left was nodded on by Holt and Hoolahan did brilliantly to keep the ball in and skip past Tabb before pulling the perfect cross back for Lansbury to sidefoot home.

Chris Martin fired well wide moments later but as Reading broke, an error by Ward almost handed them the equaliser. The defender's backpass fell short and Ruddy had to dash out, hammering the ball against Long just as the striker threatened to pounce. Luckily for City, the ball dropped behind.

It should have been 2-0 in the 20th minute when Holt missed a golden chance. Ward's long ball forward reached Chris Martin and his perfect flick left Holt a clear run on goal, but as Federici came out, the City skipper blazed his shot over the top.

It was all action and after Robson-Kanu had a shot blocked by Barnett, Lansbury's 60-yard pass found Chris Martin and the striker homed in on goal before his shot was deflected off Harte for another corner.

Reading were level, however, in the 26th minute when Long scored his fifth goal in four games against City.

The Canaries were attacking but the move broke down with a stray pass from Fox and Reading broke through Kebe on the right. Kebe got the better of Ward with the help of a ricochet as the defender challenged him, and Kebe raced on to deliver a cross towards the six-yard box that was neatly tucked away by Long.

City were struggling, especially on the left side of the defence, and Long got away again to set up a chance for Howard, whose goalbound shot was deflected over the top by Barnett.

Lansbury was booked in the 34th minute for a trip on Kebe as he overstretched.

A brilliant save by Federici denied Holt two minutes later when the City skipper met Lansbury's cross with a neat volley but the 'keeper dived to his right to prevent a certain goal.

Ruddy then came to City's rescue as Kebe was given the benefit of a tight offside decision and raced away to clip in a shot from a tight angle that the keeper diverted over the bar.

Chris Martin earned a ticking-off for a challenge on Harte but referee Mathieson did not produced the yellow card.

A foul by Fox on Kebe gave Reading another free-kick on the right-hand corner of the penalty area, which Harte curled just wide, but Ingimarsson was left on the ground in the six-yard box clutching his neck after Ruddy landed on him.

Holt was back in his own penalty area making an important clearance from Karacan's cross as Reading threatened again, but City were soon on the attack with Lansbury turning a tame effort wide after good work by Drury.

Reading forced a corner in first-half stoppage time but Kebe made a complete hash of an attempted short corner and Lansbury took possession.

• HALF-TIME: Norwich City 1, Reading 1

One minute after the break, Reading had strong claims for a penalty when Tabb went down under challenge from Fox. The City man may have caught Tabb with his left arm but he went down fairly easily and referee Mathieson was unimpressed. There were angry exchanges between players on both sides before the official lectured the protesting Tabb.

Hoolahan had City's first real effort of the second half when he moved on to a touch from Holt and curled in a right-foot shot, but straight at Federici.

A patient build-up almost paid dividends after 57 minutes when Hoolahan's cross was met by a glancing header by Chris Martin that was just wide, but City were finding it hard to cut through the Reading defence.

Lansbury won a corner when his shot was deflected wide by Tabb, but though Crofts got his head to Fox's kick, Federici punched clear.

Barnett made an important interception from Kebe's cross after a mix-up meant Ward and Drury left the ball for each other.

Goalscorer Lansbury was replaced in the 63rd minute as Surman made his first appearance since November.

The substitute was quickly into the action as he poked a shot wide from Chris Martin's pass but was in any case flagged offside.

With 65 minutes gone, Reading were reduced to 10 men after a bad challenge by Karacan on Fox 10 yards into the Norwich half earned him the red card.

Karacan was immediately surrounded by angry Norwich players and one or two scuffles broke out before referee Mathieson restored order and produced the red card.

Three minutes later, Surman almost made it 2-1 when he clipped the top of the crossbar from Chris Martin's pass.

Reading made their first change with 18 minutes left when Antonio replaced Robson-Kanu.

Crofts struck a shot straight at Federici as City pushed forward again but they still looked jittery at the back.

Federici saved Reading twice in a matter of seconds when the Canaries looked set to take the lead.

Holt put Crofts clean through but the keeper came out well and blocked his low shot and as City continued to press, Hoolahan's volley from a Russell Martin cross forced Federici to save low by his right-hand post.

There was a further flashpoint when one of the referee's assistants appeared to be struck by a missile by the corner flag as Harte waited to take a throw-in.

There was a short delay before play resumed and it was all happening now.

Reading had a great chance for 2-1 when Long got the better of Barnett on the left touchline and crossed to Antonio, but the substitute's effort was diverted over the bar when he looked to have a real opportunity.

Barnett immediately pulled up sharply as if he had pulled a hamstring and was replaced by Whitbread before the corner could be taken.

Ruddy needed two attempts to grab the flag-kick before City made another change as Wilbraham replaced Chris Martin.

Twice in the space of a minute City might have gone ahead as first Wilbraham failed to connect with Russell Martin's cross, then Hoolahan blazed over from a great opening.

With 90 seconds left, Holt robbed the dithering Griffin and tried to beat Federici from a tight angle but the keeper was in the right place again.

In the first of four added minutes, Federici denied Holt again with a brilliant one-handed save as the City skipper went clean through.

The keeper then saved Whitbread's header from a Fox free-kick.

There were less than 10 seconds of the fourth minute of stoppage time left when Holt sent Carrow Road wild with the winner.

A flick by Surman put Crofts in on the left and his cross bypassed Wilbraham and ran across the six-yard box with Holt arriving beyond the far post, ahead of Harte, to knock in a dramatic winner.

• RESULT: Norwich City 2, Reading 1

• Norwich City: Ruddy, Russell Martin, Barnett, Ward, Drury; Fox; Crofts, Lansbury; Hoolahan; Holt, Chris Martin.

Subs: Steer, Whitbread (for Barnett, 79), Korey Smith, Lappin, Surman (for Lansbury, 63), Jackson, Wilbraham (for Chris Martin (82).

• Reading: Federici; Griffin, Mills, Ingimarsson, Harte; Howard; Karacan, Robson-Kanu; Tabb; Kebe, Long.

Subs: McCarthy, Khizanishvili, Gunnarsson, Hunt, Antonio (for Robson-Kanu, 72), Church, Manset.

• Referee: Scott Mathieson (Cheshire)

• Attendance: 25,560

• Goals: City: Lansbury (16), Holt (90). Reading: Long (26)

• Red card: Karacan (65)

• Booking: City: Lansbury (34)