Two goals inside the final five minutes helped Brentford complete a come back from a goal down and record a win against fellow high-flyers Reading. The Bees trailed to a penalty from Lucas João and had a difficult opening to the game, but Josh Dasilva conjured an equaliser before the break. An even and enthralling contest looked set to be heading for a 1-1 draw before Dasilva smashed The Bees in front and Ivan Toney scored his 23rd of the season to seal a magnificent, hard fought, 3-1 win.

It was three points that The Bees deserved over the course of the 90 minutes, but they had to work hard for. Reading had the better of the opening exchanges and scored from the penalty spot but Dasilva scored a superb leveller. His second was probably even better, a right foot tracer bullet of a volley that put the heat in to a freezing Berkshire evening. Toney set up both those goals and had time to slot in a third to settle matters.

Reading started on the front foot both with and without the ball. In possession they looked to push forward with their attacking midfield players trying to play in Brentford territory. And they looked to stay high up the pitch without the ball as well, stopping The Bees building any momentum. The home side had much the better of the first quarter of the contest and while they did not create loads of chances, they probably deserved the first goal.

That goal came from the penalty spot and was scored by João. Reading switched the play from right to left and Ovie Ejaria fed it inside to Josh Laurent breaking in to the penalty area. He got past Henrik Dalsgaard and then went down with the Brentford defender behind him. Referee Tony Harrington decided that a penalty should be awarded despite there seeming to be limited contact and João took it. His spot kick was low to the right of David Raya and squeezed in despite the Brentford goalkeeper getting a hand to it.

The home side had been the dominant force in the game to that point. Alfa Semedo had seen a shot deflect wide early on and the game had mostly been played in Brentford’s half. But they had not created the chances their possession may had warranted, and it took the penalty to breach a well-drilled Brentford defence.

Laurent had another shot blocked and Ejaria fired across the face of the goal, but Brentford got themselves level ten minutes before the break. Toney took a free kick quickly and released Dasilva on the right hand side. He worked his way in to the penalty area, past Omar Richards and cut on to his left foot before unleashing a shot that ripped past Rafael Cabral and in to the top corner.

On the balance of attacking opportunities, Brentford may have deserved to be level. A low corner from Mathias Jensen was deflected towards goal by Andy Yiadom and Cabral had to tip it over his own crossbar. Jensen also had a shot from the edge of the penalty area when a long throw dropped to him that hit Tariqe Fosu and rolled wide.

Brentford may have scored when a Toney flick set Fosu away on the right in a two-on-two situation. He drove in to the penalty area and tried to square it to Bryan Mbeumo but Yiadom made a block. The goal followed soon after and there seemed to be opportunities for The Bees when they could move the ball quickly in the Reading half. But too many passes went astray, Brentford were not always able to hold possession and the home side slowed down every dead ball so chances to break quickly were limited, until Dasilva struck.

The hosts responded well to that goal and went on the attack in the later stages of the first half. Raya had to tip a header from João over the crossbar and the Reading striker went close again soon after. When Dasilva was robbed, not for the first time, Richards set João away on the left and he looked set to shoot from a tight angle before Ethan Pinnock made a brilliant recovery tackle. Raya then denied Laurent in the dying seconds of a half that ended all square but with Reading holding the upper hand.

The first half had shown the quality on display from both teams. The evening started with the teams in fourth and second respectively and the game was as well matched as it looked set to be before kick-off. The second period was more cagey than the first. Defences were on top and there were few chances of note. Brentford were slowly taking the upper hand but the only shot on goal in the first 20 minutes of the second period was from Olise, which deflected wide.

There was a sight of goal when Toney flicked on and substitute Sergi Canós diverted the ball in to Dasilva, but Michael Morrison came across to make a challenge. Dasilva then darted in to the penalty area on the right side, away from Richards again, and cut the ball back but Reading defenders again prevented it reaching Toney and the chance was gone. And as the game entered the final ten minutes, it looked like Brentford’s pressure would not turn one point in to three. But then Dasilva struck.

The goal came after an extended spell of possession. The ball was worked across the pitch, back and forth as The Bees probed, and space was eventually worked for Jensen. The cross was deep to the far post where Toney had peeled off and isolated himself on Richards. Toney chested the ball down first time in to the path of Dasilva and he lashed a right foot shot high over Cabral and in to the net. The first touches from Toney and Dasilva turned an inviting cross in to a marvellous goal and Brentford had the lead.

And the visitors then went looking for more. Canós found space in midfield and drove forward before letting fly with a shot. The ball dipped and Cabral had to save low to his right, but he could only push it out in front of him. Arch poacher Toney was waiting to add a goal to his pair of assists and The Bees had the points.

Mr Harrington played more than six minutes of injury time as Reading sought a way back in to the game, but their race was run. An Olise free kick hit a defensive wall in the last seconds but Reading were beaten. They spent the last moments in Brentford territory but could not score and the visitors took the points.

Reading: Cabral; Yiadom, Morrison, McIntyre, Richards; Rinomhota, Laurent; Olise, Semedo (sub Aluko 77 mins), Ejaria (sub Holmes 90 mins); João

Subs (not used): Southwood, Esteves, Gibson, Tetek, Onen, Camará, Baldock

Bookings: Richards (74 mins)

Brentford: Raya; Dalsgaard, Pinnock, Sørensen, Henry; Dasilva (sub Žambůrek 90 mins), Janelt, Jensen (sub Forss 90 mins); Mbeumo (sub Canós 64 mins), Toney, Fosu (sub Ghoddos 80 mins)

Subs (not used): Daniels, Stevens, Roerslev, Gilbert, Reid