West Bromwich Albion 0-2 Crystal Palace
Keith Downing fell to his first defeat in five games as West Brom caretaker head coach as Crystal Palace advanced to the FA Cup fourth round.
Dwight Gayle put the visitors in front after an error by Goran Popov.
The first half was evenly matched and Palace's Barry Bannan and Albion's Craig Dawson both struck the woodwork.
Eagles keeper Julian Speroni then had to be at his best with West Brom dominating, before Marouane Chamakh sealed the win with the last kick.
The Moroccan's strike saw Palace through to the fourth round for the first time in four years, and made it four victories from Tony Pulis's nine games in charge of his rejuvenated side.
The first chance fell to Baggies striker Saido Berahino, who had been the match-winner in the New Year's Day triumph against Newcastle. His aim was off this time however, as he volleyed well over.
The deadlock was then broken as Popov's wayward clearance fell straight to Hiram Boateng, who fed Gayle to wrong-foot West Brom Ben Foster from the edge of the area.
Bannan had already struck the post after rounding Foster in the early stages, when Dawson's header looped off the top of the bar at the other end.
West Brom began to take control after the hour mark, with Speroni producing the save of the match to tip Matej Vydra's low shot around a post having seen it late.
The Argentine had to be at his best again soon after to deny Berahino.
Despite the Baggies's dominance, Palace continued to create opportunities of their own.
After an offside Gayle had poked home Yannick Bolasie's goal-bound shot late on, Chamakh did find the back of the net from Bolasie's pass deep into injury time.
West Brom caretaker head coach Keith Downing:
"It is a little bit hard to take. We gave them a goal, which is disappointing.
"When you play against Tony Pulis's sides you know they'll be organised and resolute. Once we gave the goal away it made it doubly difficult for the afternoon.
"We had a lot of possession and it was frustrating."
Check out a photo gallery from all of today's FA Cup fixtures on the BBC Sport Facebook page.
- 14LuganoBooked at 56mins
- 5YacobSubstituted forSessegnonat 82'minutes
- 25DawsonBooked at 55minsSubstituted forAmalfitanoat 61'minutesBooked at 90mins
- 22GeraBooked at 27mins
- 20VydraSubstituted forSinclairat 69'minutes
- 3MariappaBooked at 73mins
- 4ParrBooked at 61mins
- 46BannanSubstituted forPuncheonat 79'minutes
- 38BoatengBooked at 42minsSubstituted forO'Keefeat 68'minutes
- 20WilliamsSubstituted forChamakhat 78'minutes
- Phil Dowd
- Shots on Target