Lee Tomlin fired Cardiff to a first league win of 2020 as a 2-1 victory cost West Brom top spot in the Sky Bet Championship.
Callum Paterson broke the deadlock straight after the restart before Albion substitute Charlie Austin converted from the penalty spot with his first touch.
But Tomlin's brilliant free-kick 14 minutes from time ensured that the visitors' miserable recent league run would continue and see Leeds leapfrog them.
Alex Smithies protected Cardiff's three points with a brilliant one-handed stoppage-time save from Bluebirds old boy Kenneth Zohore.
Hal Robson-Kanu led the West Brom attack and was hoping to impress after reversing his decision to retire from international football.
Robson-Kanu was back at the Cardiff City Stadium for the first time since October 2017, when Wales' World Cup qualification hopes were ended by defeat to the Republic of Ireland.
West Brom were buoyed by Saturday's FA Cup victory at West Ham, but Slaven Bilic's side had gone six league games wthout a win and it showed in a first half of questionable quality.
Albion dominated possession but fashioned few chances to warm their travelling support on a bitterly cold night in the Welsh capital.
When they did, Cardiff goalkeeper Smithies was untroubled as Matt Phillips and Dara O'Shea blazed well over.
Mid-table Cardiff were short on wins themselves, with the Bluebirds having acquired the title of draw specialists since Neil Harris' November appointment.
Robert Glatzel missed an early chance for Cardiff and Jake Livermore sliced wide at the other end as the Baggies began to dictate the tempo.
But Cardiff had two chances in the space of 60 seconds, Marlon Pack's low free-kick forcing Johnstone into easily gathering at his near post before Curtis Nelson headed wide from a Will Vaulks long throw.
This tactic, however, paid off within 40 seconds of the restart as Albion failed to deal with another Vaulks long throw.
Kyle Bartley deflected the ball into Sean Morrison's path and Paterson stabbed home after Johnstone had failed to hold the initial shot.
Albion should have been level within five minutes when Phillips surged down the right and delivered a perfect cut-back to the unmarked Filip Krovinovic. The Croatian appeared as if he would pick his spot from 10 yards, but his effort sailed over Smithies' crossbar.
Albion made a double substitution near the hour-mark with Austin and Zohore replacing Robson-Kanu and Kyle Edwards.
It paid off within two minutes as Jazz Richards' rash challenge felled Krovinovic and Austin dispatched the penalty with his first touch.
The equaliser energised West Brom and Krovinovic fired narrowly wide.
But Cardiff went ahead again when Phillips barged over Tomlin on the edge of the area, and the substitute picked himself up to curl his effort over the wall and into the corner of the net.
Cardiff City: Smithies; Richards, Morrison, Nelson, Bennett; Vaulks, Pack; Whyte (Bacuna 82), Paterson, Hoilett (Bamba 90); Glatzel (Tomlin 64)
Subs: Etheridge, Flint, Murphy, Mayembe
WBA: Johnstone; O’Shea, Bartley (Furlong 77), Hegazi, Ferguson; Sawyers, Livermore; Phillips, Krovinovic, Edwards (Austin 59); Robson-Kanu (Zohore 59)
Subs: Bond, Brunt, Townsend, Barry
Referee: Robert Jones