Cardiff completed a Severnside derby double over Bristol City by winning 1-0 at Ashton Gate.
Perry Ng’s 66th-minute header gave Cardiff back-to-back victories after going four without a win and took them above Bristol City in the Championship table.
Both teams kicked off knowing they were in need of a strong late-season flourish to force their way into the play-off picture.
There was little to choose between them over 90 minutes when clear-cut openings were rare.
But Cardiff lived up to the title of Championship set-piece kings by scoring a league-leading 17th goal from such a situation this season.
Bristol City had some good moments but they were often repelled by the head of Nat Phillips as the Liverpool central defender showed what an outstanding acquisition he has been since arriving on loan in January.
Cardiff’s 2-0 derby home win in October had signalled the end of Nigel Pearson’s Ashton Gate tenure and the eventual arrival of Liam Manning in the Robins’ hot seat.
On that occasion Rubin Colwill had lit up the Welsh capital with a stunning strike, but the Wales forward was kept on a tight leash this time.
A sedate opening sparked into life with the hosts having three penalty appeals rejected by referee Sam Allison.
Nahki Wells tumbled in the box after 11 minutes and handball claims after shots from Andy King and Taylor Gardner-Hickman were blocked in the same attack were waved away.
Mark Sykes tested Ethan Horvath for the first time after 20 minutes, with the ball striking the Cardiff goalkeeper squarely in the chest before the Bluebirds cleared.
Cardiff’s tactic appeared one of containment and counter and David Turnbull sent a tame effort wide after slick approach play from Josh Bowler.
Ng let fly from 25 yards to warm the hands of Robins’ goalkeeper Max O’Leary, with the Cardiff full-back soon in more familiar territory to snuff out Sykes.
Bowler was off-target after combining well with Turnbull, and the latter’s free-kick at the start of the second period provided comfortable catching practice for O’Leary.
Yakou Meite replaced the injured Kion Etete in the Cardiff attack and Ryan Wintle took over the captaincy from Joe Ralls.
The changes had a positive effect as Ollie Tanner, another substitute, won a corner and Ng rose highest for his sixth goal of the season and second against Bristol City.
Horvath protected Cardiff’s victory by producing a superb reflex stop to deny Rob Dickie with Tommy Conway’s follow-up effort ruled out for offside.
Bristol City: O’Leary, McCrorie, Williams, King, Knight, Dickie, Sykes, Wells, Gardner-Hickman, Roberts, Vyner. Subs: Bajic, Pring, Cornick, Mehmeti, Conway, Knight-Lebel, Mebude.
Cardiff City: Horvath, Ng, Goutas, Phillips, Wilson-Esbrand, Siopis, Ralls (C), Turnbull, Bowler, R. Colwill, Etete. Subs: Turner, Romeo, Collins, Wintle, O'Dowda, Tanner, Ashford, Méïté, Diédhiou.
Referee:
Sam Allison
Attendance:
24,035