Bristol City took the Severnside derby spoils on Friday night, as they held on to beat Cardiff 1-0 at the Cardiff City Stadium.
What proved to be the winning goal came inside 120 seconds of the first whistle, when Chris Martin tapped in Antoine Semenyo's square ball to score his first league goal since joining the Robins from Derby in September.
Neil Harris' Bluebirds registered 17 shots throughout the encounter but failed to beat goalkeeper Daniel Bentley, meaning they stay 13th after a third defeat in four league games. Bristol City climb to second, two points behind leaders Reading.
The last three derby meetings between these two teams had been settled by a solitary goal and there was every indication that would change when the deadlock was broken with less than two minutes on the clock.
It was a smart pass from Nahki Wells that set the wheels in motion. Jamie Paterson then rolled the ball out to Semenyo on the right, where the Robins academy product drove to the byline and cut the ball back for Martin to tap in from a few yards out.
The first half was an exhibition in efficiency from the visitors as they retained the lead while keeping their lively opponents at bay. Kieffer Moore saw a header pushed wide by Bentley, while Leandro Bacuna swivelled and forced the ex-Brentford goalkeeper to shovel a swerving effort away from danger.
Cross after cross came was delivered by left-back Joe Bennett and, on the hour mark, Harry Wilson escaped his marker to connect with one at the far post. Again, however, the Liverpool loanee was denied by a perfectly positioned Bentley.
Wilson was involved as the hosts tried to capitalise on their dominance shortly after, with the Welshman's dinked cross first evading Junior Hoilett and then being blazed well over the crossbar by Joe Ralls, who had scored three goals in his last two games.
Dean Holden introduced defender Taylor Moore and the experienced Chris Brunt to shore things up for Bristol City late on, which worked wonders as a single goal won the derby yet again.
Cardiff City: Smithies; Bacuna, Morrison, Nelson, Bennett; Pack, Ralls; Ojo (Glatzel 63), Wilson, Hoilett; Moore.
Subs: Phillips, Bamba, Bagan, Vaulks, Whyte, Murphy.
Bristol City: Bentley; Hunt, Vyner, Kalas, Da Silva (Rowe 88); O'Dowda, Nagy, Paterson (Moore 81); Martin, Semenyo, Wells (Brunt 72).
Subs: O'Leary, Edwards, Towler, Massengo.