Barcelona sealed their 24th La Liga title as Luis Suarez took his tally for the season to 59 goals with a hat-trick in a 3-0 win at Granada to hold off Real Madrid's late-season surge.
Real registered their 12th consecutive La Liga win, 2-0 at Deportivo la Coruna thanks to Cristiano Ronaldo's double, but finished a point behind their bitter rivals.
Suarez's treble also sees him become the first player in seven years other than Ronaldo and Barca teammate Lionel Messi to win the Pichichi award for La Liga's top goalscorer with 40.
Barca had seemed set to cruise to the title until a run of three consecutive defeats for the first time in 13 years last month.
However, they bounced back like champions as, inspired by Suarez's 14 goals, they scored 24 times without reply in the last five games to win the title.
Barca were put under pressure early on as Ronaldo struck after just seven minutes to put Madrid in front in A Coruna.
Gerard Pique was twice denied by Andres Fernandez from corners, whilst the Granada goalkeeper also tipped over Messi's driven effort from the edge of the area.
Barca's nerves were settled by a brilliant team move on 22 minutes as Neymar freed Jordi Alba down the left and his low cross was turned into an empty net by Suarez at the back post.
Suarez then doubled Barca's advantage when he nipped in ahead of Fernandez to head in Dani Alves's cross at the near post.
Neymar nearly rounded off a brilliant first 45 minutes for the champions as he shot just wide at the end of a surging individual run.
Fernandez made excellent saves from a Messi free-kick that was arrowing towards the top corner and Neymar to keep Granada in the game after the break.
And the Andalusians had the chance to set up a nervy finish but former Barca winger Isaac Cuenca's shot was beaten away by Marc-Andre ter Stegen.
However, fittingly Suarez sealed a stunning season when he completed his hat-trick from Neymar's unselfish square pass.
Madrid's record 12-game winning streak to end the season wasn't enough to overcome the 12-point deficit they faced to Barca back in March.
However, victory secured second place ahead of Champions League final opponents Atletico Madrid, whilst Ronaldo moved past the 50 goal mark for the sixth consecutive season.
The three-time World Player of the Year opened the scoring as he swept home Karim Benzema's mishit effort at the back post.
Ronaldo's second was slightly fortuitous as his header was deflected past the helpless Stipe Pletikosa by Pedro Mosquera.
However, the Portuguese could have had four before he was replaced at half-time with one eye on the Champions League final on May 28 as he also hit the post and the crossbar before the break.
Real coach Zinedine Zidane also withdrew Gareth Bale 15 minutes from time to keep the Welshman fresh as the visitors played out the second-half in the knowledge Barca were in command in Granada.
(For more sports news and updates, follow Ahram Online Sports on Twitter at @AO_Sports and on Facebook at AhramOnlineSports.)