Los Merengues are on top of the league table with 78 points. They have an unassailable 10-point lead over second-placed Villarreal with three games left.
Real claimed their 31st league title in history. It was also the first triumph for Bernd Schuster in his managerial career.
The German tactician took charge of Real in the summer following the sacking of Fabio Capello, who also guided the team to league title.
Away at Osasuna, Real's hopes of claiming the title before facing arch-rivals Barcelona on Wednesday suffered a blow when Fabio Cannavaro was sent off shortly after restart.
Things went from bad to worse when Osasuna midfielder Patxi Punal converted from the spot after Gabriel Heinze handled a cross in the area in the 84th minute.
But Dutch winger Arjen Robben drew Real level two minutes later when he headed home Gonzalo Higuain's free-kick.
The Argentinean turned from provider to scorer two minutes from time when he chested Sergio Ramos' cross inside the area before blasting home.