Goals from Tommy Conway and Rob Atkinson gave Bristol City a 2-0 Championship victory against Cardiff City in the Severnside derby at Ashton Gate.
The home side took a 41st-minute lead when Nahki Wells crossed and Conway got in front of his marker to net his fourth goal of the season with a glancing header.
The centre-back Atkinson made it 2-0 with a stooping header from Joe Williams’ 64th-minute free-kick and Nigel Pearson’s team held out for a deserved three points.
Cardiff had to make a seventh-minute change when Joel Bagan suffered a head injury in a clash with Alex Scott and was replaced by Jack Simpson. Bristol City then made the early running, Conway bursting clear on the left only to see his shot from a narrow angle smothered by Cardiff goalkeeper Ryan Allsop.
Han-Noah Massengo had the ball in the visitors’ net five minutes later, but his header from an Andreas Weimann cross was ruled out for a foul on Allsop. Suddenly it was the home defence looking vulnerable as Max Watters ran on to a 38th-minute through-ball from Mahlon Romeo only to shoot over with just Dan Bentley to beat.
Seconds later, Cedric Kipre shot wide at the end of a penetrating Cardiff move before the balance shifted again with Conway’s goal. It was almost 2-0 before the break when Weimann’s volley crashed against the crossbar.
Cardiff thought they had equalised in first-half injury time, but Sheyi Ojo’s close-range finish from a cross by former Bristol winger Callum O’Dowda was disallowed for offside. The hosts then had a good chance to double their lead at the start of the second half when Jay Dasilva shot wide at the far post from a Weimann cross.
Williams had a low effort deflected past a post and Atkinson fired narrowly wide as Cardiff came under heavy pressure. The manager, Steve Morison, responded with a double substitution on 57 minutes, sending on Mark Harris and Jaden Philogene-Bidace for Watters and Ojo.
Cardiff’s Romaine Sawyers and Bristol’s Massengo went close with shots that flew wide. Then came Atkinson’s goal, and a Cardiff riposte that saw Bentley save bravely at the feet of first Harris and then another substitute, Rubin Colwill.
Dasilva risked conceding a penalty when bundling into the back of Romeo, but the referee Thomas Bramall saw nothing wrong. Weimann netted from close range on 78 minutes, but was offside from Wells’s cross.
Victory moves Bristol City level with Cardiff on seven points, with the swing in goal difference putting Nigel Pearson’s side in seventh place, and the Bluebirds in 12th.