It appeared as though the visitors would be rewarded for an excellent first half as a goal from Brede Hangeland and Mile Jedinak's spot-kick put Palace into a two-goal lead at The Hawthorns at the interval.
West Brom claimed a share of the spoils, though, as substitute Victor Anichebe halved the deficit shortly after the break before Berahino's seventh Premier League goal of the season ensured a 2-2 draw at the death.
Hangeland, who continued to deputise for the injured Scott Dann, opened the scoring with a close-range effort from a Palace set-piece, before captain Jedinak added a second from 12 yards in first-half injury time.
Anichebe's six-yard header brought West Brom back into the game, although Palace felt hard done by after goalkeeper Julian Speroni was caught by the elbow of the Craig Dawson.
And West Brom's concerted second-half pressure finally bore fruit as Jedinak was punished for a clumsy foul on Anichebe and Berahino - who also scored in West Brom's 2-2 draw with Manchester United on Monday - stayed cool to level the match.
West Brom looked lively in the opening stages but Palace wingers Wilfried Zaha, one of three men to come in from the Chelsea defeat, and Yannick Bolasie soon started causing problems.
One particularly mazy run from Zaha led to a free-kick in a dangerous area on the right, and from Joe Ledley's cross Fraizer Campbell's looping header forced Ben Foster - restored to West Brom's line-up after a calf injury - to tip over the crossbar.
The resulting corner saw Palace move ahead in the 16th minute. Hangeland met Bolasie's delivery in a packed six-yard box and, though Foster saved his first effort, the centre-back poked home the rebound.
West Brom responded well and Speroni made a smart stop from Gardner's stinging 25-yard drive.
Palace weathered the storm and Zaha had claims for a penalty seven minutes before the break when he was felled by Dawson on the left of the area.
The visitors were awarded a spot-kick on the stroke of half-time, though. Sebastien Pocognoli slid through Bolasie prompting referee Mark Clattenburg to point to the spot.
And Jedinak kept his cool and sent Foster the wrong way with a penalty to the bottom left-hand corner.
Anichebe was introduced at half-time and made an almost-immediate impact.
Speroni pulled off a fine save to keep out Berahino's curling effort, but from Chris Brunt's resulting corner, Anichebe nodded home.
Palace were left fuming with the decision, though, as Speroni appeared to take an elbow to the head from Dawson and he was replaced between the posts by Wayne Hennessey.
Anichebe's strength was causing the Palace defence problems and he saw another shot blocked in the penalty area, before Gardner's looping long range effort beat Hennessey but not the crossbar.
But the pressure finally told in stoppage time, as Jedinak needlessly chopped down Anichebe and Berahino placed his penalty into the bottom left-hand corner.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.