There are worse places to bring up your century, but then Gareth Bale has a habit of stepping up on the biggest stages. Scorer of arguably the best European Cup final goal ever, arguably the best Copa del Rey final goal ever, scorer of the winner in two Champions League finals and a penalty in the shootout in a third, the Welshman bagged his 100th Real Madrid goal in the derby. He had been on the pitch for 15 largely anonymous minutes and Real were under pressure, struggling to hold a 2-1 lead, when he controlled and struck a firm shot past Jan Oblak.

Bale’s goal made it 3-1, in effect clinching Real’s second victory in 16 domestic derbies and reminding everyone of what he can do at a time when doubts are growing and the emergence of Vinícius Júnior is seen as a threat. It was the 18-year-old Brazilian who been withdrawn for Bale to appear here, and it was the Brazilian who most stood out in a tough, edgy match in which the video assistant referee played perhaps the most prominent role, the stadium left in suspended animation for four decisions that decisively swung this match.

Real had led twice and with Bale’s goal their advantage was at last unassailable. They went in front for the first time 16 minutes in, from a corner. Sergio Ramos rose in the middle of four men, who jumped with him but were unable to beat him, and the ball found Casemiro unmarked. With Oblak rushing out, Casemiro hit an overhead kick into the corner. Atlético had started on the front foot but it was Real who led in the derby.

And it was a derby, too: intense, imprecise tackles flying in, and Vinícius frightening Atlético every time he ran at them, which was often. From his wonderful pass Lucas Vázquez volleyed over and soon after he left Diego Godín trailing. He would do the same to José Giménez, and to great effect, but not before Atlético equalised before the half hour.

Ángel Correa set Antoine Griezmann running clear and he slid through the legs of Thibaut Courtois. As the stadium erupted, the linesman’s flag went up. Griezmann might have been offside; there might also have been a foul on Vinícius at the beginning of the move. The decision was referred to the VAR, a small crowd gathering round the referee, growing with the wait. Eventually, Estrada Fernández pointed to the centre circle: 1-1 after 25 minutes.

The game tilted again, Atlético’s way, in so much as this slightly wild occasion belonged to anyone. Yet Vinícius’s threat was constant. Five minutes before half-time, he was off again, drawing Giménez in then pulling away in the area. Giménez slid in and the foul was clear; where it happened, less so. Another stop for VAR, another wait. Eventually the penalty was awarded and Ramos scored it.

Sergio Ramos celebrates scoring their second goal. Photograph: Susana Vera/Reuters

Atlético reacted: Álvaro Morata and Griezmann struck wide and then Morata might have equalised – all inside the first 10 minutes of the second half. A long ball found Morata and he lifted a high, looping shot over Courtois into the net. Again, the flag went up and another wait followed, the VAR consulted again. This time the goal was ruled out. Courtois then saved from Giménez.

With half an hour left, Bale came on. The pattern remained, Atlético appealing for a penalty – VAR time again – when Casemiro bundled over Morata. It was not given and soon Luka Modric found space and picked out Bale inside the area on the left. He took one touch and finished, and the sending off of Atlético’s Thomas Partey with nine minutes left merely underlined the security of Real’s position.