Defender Alaba became goal-scorer in 32 minutes with a beautiful curling shot from left side of the field that Marc-Andre Ter Stegen couldn’t stop.
He scored just minutes after American Sergino Desta had wasted Barcelona’s best chance of winning the match. His close-range shot flew over the crossbar.
Vazquez scored a second goal in the final seconds of stoppage time to counter an attack by Barcelona, who was desperately trying to find an equalizer.
Sergio Aguero scored a goal for Barcelona with a cross from Dest at the end of the match.
Madrid moved up to the top in the Spanish league with the victory, now level on points with Sevilla (and Real Sociedad). Sociedad will be able to regain the lead against Atletico Madrid, the defending champion, later this Sunday.
Barcelona, which has been struggling since financial difficulties prevented it from signing Messi and other players, was also dealt a blow by the defeat. Ronald Koeman’s team finished in eighth place, five points behind.