The Baggies' four-game unbeaten run under caretaker boss Keith Downing came to end as the south London side's strikers combined to seal a hard-fought win
Dwight Gayle opened the scoring in the 22nd minute, but Palace was left clinging onto its lead in the second half as West Brom put visiting goalkeeper Julian Speroni to the test.
However, Marouane Chamakh scored a second for Palace in stoppage time to secure his side's progression.
Keith Downing made eight changes to the West Brom side that beat Newcastle United 1-0 in the Premier League on New Year’s Day, with Ben Foster, Claudio Yacob and captain for the day Gareth McAuley the only players to retain starting berths.
Tony Pulis, meanwhile, made five alterations to the XI that drew 1-1 with Norwich City on Wednesday, handing starts to Jonathan Parr, Barry Bannan, Hiram Boateng, Gayle and Jonathan Williams. Top goalscorer Chamakh dropped to the bench.
The hosts - five-time winners of the competition - had the game’s first shot at goal, with Saido Berahino sending a speculative volley over the crossbar.
A flowing Palace move led to Bannan striking the post from a tight angle moments later – the Scot very nearly benefiting from a well-worked exchange of passes with Gayle.
Palace broke the deadlock midway through the half, when Gayle turned and fired a left-footed effort into the bottom right-hand corner of the West Brom net from 20 yards.
The hosts almost hit back within a minute of the subsequent restart, but Craig Dawson’s header from a left-wing cross rattled the crossbar.
West Brom came out fighting at the start of the second period, with Berahino's 25-yarder drawing a decent stop from Speroni.
West Brom, which looked the better team after the break, continued to press for an equalizer as the half progressed, and Vydra had Speroni at full stretch soon after the hour mark with a volley from just outside the penalty area.
Berahino’s personal battle with Speroni continued, but it was the Palace man who came out on top once again when the former unleashed an effort from the edge of the box in the 70th minute.
Palace wrapped up victory in stoppage time. After Gera saw a shot deflected wide for the hosts, Chamakh fired into the bottom right-hand corner from the center of the penalty area.