Brentford ended the Sky Bet Championship season with a fourth win in a row as they beat Bristol City 3-1. A rather dour first half gave way to a dominant second period for The Bees, after Ivan Toney had opened the scoring, breaking the record for the most goals in a second tier season since it was rebranded as the Championship more than 15 years ago. Bryan Mbeumo rounded off a thrilling move to make it two before Sergi Canós added a third. City scored a late goal that was mere consolation.

Brentford probably weren’t at their best in the first half but took complete control after they went ahead. Toney’s goal came as The Bees upped the tempo, and they never looked back. City had chances sporadically but never looked likely to stop Brentford extending their unbeaten run to 12 matches.

Alex Scott had an early shot for the home side, curling a free kick from 25 yards that David Raya saved comfortably, but most of the early stages was played with Brentford in possession. The Bees were patient on the ball, trying to work openings and find space in attacking areas. Tariqe Fosu fired a free kick over for The Bees in a quiet opening to the game.

The best chance of the opening quarter of the contest fell to Marcus Forss. Canós got on the ball inside the centre circle and played a pass in to the inside right channel for Forss to run on to. He had the beating of the home defence for pace and shot early, pulling his effort just past the far post.

The hosts were well-organised in defence and working hard to stop The Bees building attacks. But there was not much tempo to Brentford’s play and with referee James Linington regularly stopping the game for a series of infringements, the game lacked rhythm. Brentford were the more ambitious of the teams but were not able to move the ball quickly enough to open up the hosts.

The Bees had penalty appeals waved away late in the first half, when Toney got a nudge in the back from Nathan Baker as he tried to get on to a Mathias Jensen pass. This time Mr Linington did not give the foul. Forss hit a post when already flagged offside and also curled a shot wide after cutting in off the left, but Brentford were not finding the right passes at the right pace in attacking areas.

Raya made a flying save from Nahki Wells at the other end, but once again the offside flag was already raised. Wells also went close with a shot that Pontus Jansson deflected wide after a run by Kasey Palmer, but the half ended 0-0 without ever really looking like it wouldn’t. Thankfully, the second half was better.

The Bees increased the tempo immediately after the break. There was more precision in their passing, and they were on the front foot. Toney was released inside the penalty area on the right side by Jensen, but his shot flew in to the side netting. Toney did not, however, have to wait much longer.

The Brentford goal came after a move down the left involving Canós and Fosu. The Bees had a plethora of players in attacking positions and Christian Nørgaard picked up a clearance. He found Forss inside the penalty the area, the shot was blocked but bounced up to Toney. The striker’s first touch took him past City goalkeeper Daniel Bentley and he rolled the ball in to the empty net, celebrating his 31st of a remarkable season and putting The Bees in front.

City could have responded immediately when Tommy Conway found space in the inside right channel and tried to power a shot past Raya at his near post, but the Brentford goalkeeper made himself big and kept it out. But that was a rare foray forward from the hosts. The Bees let the shackles off in the final half hour and went looking for goals.

Forss tested Bentley with a low shot after getting on to a Toney pass. The resulting corner was half cleared, Toney got on to it and drilled it across but Forss was unable to force it home. Forss and Toney were substituted soon after, but a new-look strike pair of Mbeumo and Saman Ghoddos continued the onslaught. A low free from Jensen was controlled by Nørgaard, he swivelled and let fly with an acrobatic effort that Bentley saved superbly.

Canós found space to deliver a cross from the left soon after, Ghoddos was unable to get a touch and Bentley reacted superbly to the lack of contact to stop the ball going straight in. Canós had another shot blocked and Ghoddos was unable to convert a Mads Roerslev cross as Brentford continued to cut City open. Gaps were appearing in midfield, Canós was irrepressible and Ghoddos was finding space to hurt the hosts.

Canós and Mbeumo combined to free Ghoddos in the inside left channel, he raced away but pulled his shot wide of Bentley’s far post. The second goal that The Bees were threatening came with 12 minutes to go, and it was one to savour. Brentford pulled City all over the pitch and had already put together a lengthy move before Canós found Vitaly Janelt. The return pass was a flick around the corner, Canós crossed and Mbeumo powered a shot in to the top corner.

The goal came at the end of a 24-pass move involving just about every Brentford player and may end up being the best of the season on the final day. It also killed off any City hope, and The Bees continued to press forward. Canós shot over from a tight angle before the third goal came five minutes after the second. Mbeumo ran from deep and released Roerslev on the right. The cross looked like it might be converted by Ghoddos, but he failed to connect. Canós, however, made no mistake, rifling a shot past Bentley and in to the net.

The three goal margin reflected the balance of the game, but it was City that had the last word. A free kick was played deep, Baker headed down and Louis Britton poked under Raya to make it 3-1. That may have taken the gloss off the afternoon a fraction, but it didn’t change the outcome as Brentford end the season in third and head in to the Play-Offs.

Bristol City: Bentley; Simpson (sub Sessegnon 72 mins), Baker, Mariappa (sub Vyner 52 mins), Dasilva; Massengo, Bakinson; Palmer (sub Janneh 64 mins), Scott, Wells (sub Edwards 64 mins); Conway (sub Britton 72 mins)

Subs (not used): O’Leary, Lansbury, Rowe, Towler

Bookings: Palmer (28 mins), Simpson (53 mins), Baker (60 mins), Britton (76 mins)

Brentford: Raya; Jansson, Nørgaard, Pinnock (sub Sørensen h/t); Roerslev, Fosu (sub Marcondes 72 mins), Janelt (sub Bidstrup 81 mins), Jensen, Canós; Toney (sub Mbeumo 64 mins), Forss (sub Ghoddos 64 mins)

Subs (not used): Daniels, Goode, Reid, Stevens

Bookings: Toney (30 mins) (seventh of season)