The Reds hit the front in the 50th minute through Martin Skrtel but the home side rallied just after the hour-mark when Peter Odemwingie was brought down in the area and captain Chris Brunt stepped up to level.
With just two minutes remaining, the Baggies got their noses in front when Odemwingie was again felled in the box, this time by Pepe Reina, who saw Brunt's second spot-kick whiz past him again.
It brought an end to a 13-game losing streak against Liverpool and gave West Brom their second win on the trot in the league which allowed them to move up to 12th.
Liverpool will be devastated by the defeat which denied them moving closer to fifth-placed Tottenham who missed a chance at Wigan.
Liverpool came close early when Dirk Kuyt hit the bar after his initial header was saved by Baggies keeper Scott Carson. The deflection from the header fell back to the Dutchman but his shot goalward could not find its way under the bar as the Reds made their early intentions clear.
In just the sixth minute, Liverpool's Glen Johnson had to be replaced when he pulled a hamstring whilst chasing Chris Brunt forcing Kenny Dalglish to bring on Greek centre-half Sotirios Kyrgiakos with Daniel Agger moving to left back.
Nothing much happened in the way of goalscoring chances before the Reds had to deal with another injury, this time to Agger, who had to come off for Danny Wilson in the 25th minute giving Dalglish a defensive headache.
West Brom got on top for a patch after the half-hour mark by keeping the ball, and Liverpool, in their half and they came close when Peter Odemwingie twisted in the area but his shot was held by Pepe Reina before the Spanish keeper was called on to keep out an inadvertent Skrtel header.
GOAL Early in the second half, Liverpool took the lead when Raul Meireles' corner was floated into the area where Skrtel freed himself and managed to head home past Carson to make it 1-0 in the 50th minute.
Dirk Kuyt's 56th minute attempt was kept out by Carson and Lucas Leiva could not direct his follow-up header goalward as the Reds went on the attack in search of a second.
GOAL But just after the hour-mark, the Baggies were awarded a penalty when Odemwingie turned Kyrgiakos and the Reds defender brought the Nigerian down. Brunt stepped up to the plate and smashed it straight down the middle to score his side's first goal against Liverpool in 10 games, making it 1-1.
The Baggies chased a second when Odemwingie fired at Reina in the 66th minute before things settled down as the minutes ticked over but it was the Nigeria international who was causing plenty of damage with a few near misses.
GOAL In the 87th minute, Odemwingie appeared to be brought down by Reina and referee Martin Atkinson again pointed to the spot sending the Liverpool players into crazy protests. Nonetheless, Brunt stood at the spot again and hammered it past Reina who went the right way but was helpess.
Liverpool almost grabbed a late equaliser when Suarez shot on goal but Carson managed a save and then the Baggies defence cleared off the line allowing them to grab a vital three points.
West Brom Scott Carson (gk) - Steven Reid, Jonas Olsson, Abdoulaye Meite, Nicky Shorey - Chris Brunt, Youssuf Mulumbu, Paul Scharner, Jerome Thomas (Jara 90+2') - Peter Odemwingie, Simon Cox (Fortune 74')
Liverpool Pepe Reina (gk) - Jamie Carragher , Martin Skrtel, Daniel Agger (Wilson 25'), Glen Johnson (Kyrgiakos 7') - Dirk Kuyt (Cole 87'), Raul Meireles, Lucas Leiva, Jay Spearing - Andy Carroll, Luis Suarez