Robin van Persie came off the bench to score a last-minute equaliser as Manchester United rescued a 2-2 draw at West Ham United after Joe Cole had delivered a vintage display on his return to Upton Park.

Cole, 31, this week returned to his boyhood club on a free transfer from Liverpool, and set up a double for defender James Collins with superb crosses from the left flank in each half to turn around the tie after Tom Cleverley had given United the lead on 23 minutes. However, as the clock ticked into stoppage time, Van Persie ghosted into the penalty area to drill a low shot into net to force a replay.

Two goals in the last five minutes by Matthew Barnes-Homer gave Conference side Macclesfield Town a 2-1 win over npower Championship leaders Cardiff. The Bluebirds led through Nathaniel Jarvis, but Macclesfield levelled when Barnes-Homer slotted in with five minutes to go. His penalty two minutes from time – after a Jarvis foul – completed the turnaround.

Bournemouth and Wigan Athletic drew 1-1 at the DW Stadium. Eunan O'Kane gave the League One club the lead four minutes before the break, but the Barclays Premier League side levelled when Jordi Gomez's penalty was parried by the goalkeeper, but the midfielder slotted in the rebound with 20 minutes left.

Fulham needed an equaliser 10 minutes from time to draw 1-1 at home to Blackpool. Ludovic Silvestre put the Seasiders ahead with half an hour to go from 25 yards, but a clearance from Bryan Ruiz's corner found Giorgos Karagounis on the edge of the box and he volleyed into the net.

Sunderland came from two goals down to draw 2-2 at Bolton Wanderers. Chung-Yong Lee shot low into the centre of the goal and Marvin Sordell added a second. Connor Wickham gave Sunderland hope a minute after coming on (60) and Craig Gardener equalised into the roof of the net from 35 yards with 15 minutes left.

Aston Villa came from behind to beat Ipswich Town 2-1. Michael Chopra scored just after the half-hour, but Darren Bent stabbed home just 36 seconds after the break. Andreas Weimann's header with seven minutes to go to gave Villa the win.

Holders Chelsea beat Southampton 5-1 at St Mary's with two debut goals from Demba Ba plus strikes from Victor Moses, Branislav Ivanovic and Frank Lampard after the home side had gone ahead on 22 minutes through Jay Rodriguez.

Manchester City beat Watford 3-0 with goals from Carlos Tevez, Gareth Barry and Marcos Lopes.

Reading came from a goal down after 14 seconds to win 3-1 at League One Crawley Town. Nicky Adams fired Crawley ahead but two from Adam Le Fondre and a Noel Hunt strike saw the Royals through.

QPR and West Bromwich Albion drew 1-1 – Shane Long gave the visitors the lead on 79 minutes before Kieron Dyer levelled in injury-time.

Crystal Palace and Stoke fought out a 0-0 stalemate at Selhurst Park.