Pierre-Emerick Aubameyang was the star of the show as he scored twice and made one for Ferran Torres.
Ronald Araujo headed home the other goal in a one-sided game in which Barcelona had enough chances to score seven or eight.
Despite this heavy home loss, Madrid still are odds-on to win La Liga. They are nine points clear of Sevilla at the top of the table. Barcelona are 12 points behind Madrid in third with a game in hand. There are only nine games remaining for the league leaders.
Elsewhere on Sunday, there were very few goals in La Liga with just two goals in the other four matches.
Sevilla did their faltering title hopes no good as they could only draw 0-0 at home to Real Sociedad.
They stay in second place but with only nine games remaining they have little hope of a shock title victory. The result also did Real Sociedad little good in their top-four chase.
Villarreal had the result of the week in beating Juventus 3-0 in the Champions League on Wednesday but then followed that up by losing 1-0 to relegation-threatened Cadiz through a last minute Ruben Sobrino goal.
Koke grabbed the only goal of the game as Atletico held on after Angel Correa’s red card.
LA LIGA STATISTICS: