Barcelona beat Real Madrid 3-0 in a fiercely contested friendly match on Saturday with an early strike from Ousmane Dembele and late goals from Fermin Lopez and Ferran Torres.

A packed AT&T Stadium, home of the NFL'S Dallas Cowboys, witnessed a game which had all the passion and commitment of a real derby despite the match being a pre-season warm-up.

Oriel Romeu rattled the Real cross-bar with a thundering drive in the fourth minute but Barca soon had their fans celebrating.

A cleverly worked free-kick saw Pedri slide a diagonal pass into the path of Dembele who expertly drilled the ball into the far corner.

Real had a great chance to get level, just five minutes later when Barcelona defender Ronald Araujo handled in the box but Vinicius Junior blasted the penalty against the bar.

The woodwork denied Real again when Vinicius struck the bar and although Jude Bellingham outjumped Barca keeper Marc-Andre ter Stegen, the midfielder's header hit the post.

Real's bad luck continued after the break with Aurelien Tchouameni blasting against the bar while Vinicius continued to torment from the left, poking a shot from a tight angle just wide.

There was no let-up from either side, despite multiple substitutions, but Barcelona's finishing proved to be the difference with substitute Fermin Lopez making it 2-0 with a brilliant blast from outside the box in the 85th minute after being set up Sergi Roberto.

Incredibly, Vinicius, after a jinking run in from the left, struck the bar again with his drive from a tight angle but Barca wrapped up the win in stoppage time.

Ferran Torres, ran on to a lofted ball from Lopez, lifted the ball over the advancing Thibaut Courtois and showed good awareness and balance to turn and slot the ball into the empty net.