Real Madrid won their first La Liga title since 2012 thanks to a final-day victory at Malaga.
Cristiano Ronaldo scored early on to settle the nerves, latching onto Isco’s through ball to step around Carlos Kameni and tap into an empty net.
Karim Benzema added their second goal after the break after Kameni parried Sergio Ramos’ shot.
Real, who had only needed a point, now face Juventus in the Champions League final looking to complete a double.
Barcelona, who had won the past two titles, came from 2-0 down to beat Eibar 4-2 but they had needed Real to slip up if they were going to retain the trophy.
The result means Zinedine Zidane, in his first full season as Real boss, is the first manager to lead Madrid to the Spanish league title since Jose Mourinho five years ago.
If Real beat Juventus in Cardiff, they will become the first team to successfully defend the Champions League – with Zidane having won the tournament six months into the job last summer.
Real Madrid are deserved champions, having been the best team in Spain – and probably Europe – for most of the season. Their squad is starting to look less reliant on Benzema, Ronaldo and Gareth Bale, who was out injured – even though the first two players scored their goals at Malaga.
Isco, who was impressive again, and Alvaro Morata have shown themselves to be quality players when given the chance.
When Barca beat Real in El Clasico on 23 April, it gave renewed hope for an exciting title race – but Real won their last six games to win the league by three points.
And there was never any title peril on the final day once Ronaldo rounded Kameni to score the second-minute opener.
Malaga had chances, with former Barca striker Sandro impressive. But with nothing to play for themselves, they never really looked like winning.