Match ends, West Bromwich Albion 3, Crystal Palace 2.
Saido Berahino scored his first Premier League goal since October as West Brom held on to win against Crystal Palace.
The Baggies forward, who apologised on Friday for his strike threat earlier in the season, scored a cushioned volley from Stephane Sessegnon's pass.
That put the hosts in charge after Craig Gardner tucked in a rebound and Craig Dawson's header.
Connor Wickham scored twice to make it a nervy ending but Palace's winless league run now stretches to 10 games.
West Brom dominated the first half, but in a fluctuating game Palace almost stole a point when Scott Dann's late header was cleared off the line by Gardner.
Alan Pardew's side have only won games in the FA Cup in 2016, and despite an improved second half at the Hawthorns, where they also had two penalty appeals turned down, they ultimately paid for a poor start.
After going through their own sticky patch, Tony Pulis' team have now strung together consecutive league victories for the first time since the turn of the year.
Were West Brom galvanised by Brunt incident?
Unlike Palace, the Baggies were knocked out of the FA Cup by Reading, a defeat which was soured when Chris Brunt was hit by a coin thrown by a West Brom fan.
That led to supporters rallying around the Northern Irish international by collecting money for a charity of Brunt's choice before this match and singing his name in the 11th minutes to coincide with his shirt number.
But those cheers were overshadowed when the hosts took the lead as Berahino played in Salomon Rondon, whose shot was saved by Wayne Hennessey before Gardner tucked in.
Sessegnon then helped push West Brom further ahead. First he won the free-kick which Gardner curled on to the head of Dawson.
The Benin international's sumptuous pass then found Berahino for a goal which went some way to making up for his petulant behaviour over the course of the season.
The only blot in an almost-perfect first half for West Brom was the sight of Brunt being taken off after he seemed to jar his knee while racing for the ball.
Palace improve but slump continues
Last time Palace won a Premier League fixture - on 19 December - they were sixth in the table with commentators speculating about their European ambitions.
Since then, their league form has been terrible, recording only three draws in a 10-game winless run.
West Brom's front three did combine successfully in the first half but the Palace defence offered little resistance, and Emmanuel Adebayor was replaced at the break after a limited contribution.
Palace's toils have coincided with a hip injury to Yannick Bolasie, and once he came on at half-time the game swung in the visitors' favour.
Much of that was down to Olsson's error after the centre-back misjudged Joe Ledley's deep header before it reached goalkeeper Ben Foster, allowing Wickham to nip in and score his second of the season.
Despite the Baggies twice hitting the woodwork through Gardner and Berahino, Palace will argue they had two penalty appeals waved away. First, Gareth McAuley pushed over Scott Dann as he jumped for a header and Darren Fletcher seemed to bump into Bolasie.
Once Wickham fired in wonderfully following a deep free-kick it looked like they might force an equaliser, but West Brom stood firm.
Man of the match - Stephane Sessegnon
Crystal Palace boss Alan Pardew: "For the first 30 minutes they swamped us with aggression and power. Their front two caused us problems but our front two didn't and our distribution wasn't good.
"The first half was a shock to me, the goals went in quickly, and it knocked our confidence. In the second half we were a completely different side."
On the penalty appeals: "[The Scott Dann push] was a blatant penalty, I could see it from where I was. Scott was barged in the back, but we never seem to get those calls as we are a big side. Yannick Bolasie was good when he came on and he let it run across him [for his penalty appeal] but the guy took his legs."
West Brom boss Tony Pulis: "We have 11 games to get over the line and it's been an eventful season in many ways.
"Saido has taken most of the time with what has happened and we have missed him and James Morrison and now Chris Brunt. Overall, the team have done fantastically to get to 35 points with 11 games to go."
Stats you need to know
- West Brom scored as many goals in the opening 20 minutes v Palace (two) as they had in their previous five Premier League games
- The Baggies scored three-plus goals in a Premier League game for only the second time in their last 59 attempts
- In his 240th Premier League appearance, Craig Gardner has scored and assisted in the same game for the first time
- Connor Wickham scored more than once in a Premier League game for the first time since April 2014
- Alan Pardew's teams have only kept three clean sheets in his last 34 post-New Year games in the Premier League
West Brom face a tough trip to table-toppers Leicester on Tuesday before a home game against Manchester United the following Sunday. Crystal Palace are away at Sunderland on Tuesday before hosting Liverpool.
- 25DawsonBooked at 17mins
- 11BruntSubstituted forChesterat 44'minutesBooked at 78mins
- 29SessegnonSubstituted forMcCleanat 75'minutes
- 33RondónSubstituted forGuimaraes Cordeiroat 87'minutes
- 30Guimaraes Cordeiro
- 7CabayeBooked at 64minsSubstituted forGayleat 80'minutes
- 28LedleySubstituted forJedinakat 81'minutes
- 25AdebayorBooked at 25minsSubstituted forBolasieat 45'minutes
- Jonathan Moss
- Shots on Target
Second Half ends, West Bromwich Albion 3, Crystal Palace 2.
Wilfried Zaha (Crystal Palace) wins a free kick in the defensive half.
Foul by Saido Berahino (West Bromwich Albion).
Foul by Mile Jedinak (Crystal Palace).
James McClean (West Bromwich Albion) wins a free kick on the left wing.
Offside, Crystal Palace. Damien Delaney tries a through ball, but Dwight Gayle is caught offside.
Attempt missed. Dwight Gayle (Crystal Palace) right footed shot from outside the box misses to the right from a direct free kick.
Dwight Gayle (Crystal Palace) wins a free kick in the attacking half.
Foul by Jonas Olsson (West Bromwich Albion).
Offside, West Bromwich Albion. Craig Gardner tries a through ball, but Saido Berahino is caught offside.
Saido Berahino (West Bromwich Albion) wins a free kick on the right wing.
Foul by Damien Delaney (Crystal Palace).
Substitution, West Bromwich Albion. Sandro replaces Salomón Rondón.
Attempt missed. Joel Ward (Crystal Palace) right footed shot from outside the box is high and wide to the left following a set piece situation.
Joel Ward (Crystal Palace) wins a free kick in the attacking half.
Foul by James McClean (West Bromwich Albion).
Attempt blocked. Scott Dann (Crystal Palace) header from the centre of the box is blocked. Assisted by Jordon Mutch with a cross.
Corner, Crystal Palace. Conceded by Gareth McAuley.
Attempt missed. Connor Wickham (Crystal Palace) left footed shot from the left side of the box misses to the left. Assisted by Jordon Mutch.