Barcelona secured the runners-up spot in LaLiga behind champions Real Madrid with a 3-0 home win against Rayo Vallecano.
Robert Lewandowski’s early strike and two second-half goals from Pedri sealed victory for Barca in their final home game of the season and also a place in the Spanish Super Cup.
Rayo Vallecano will head into next week’s final match safe despite defeat due to results elsewhere.
Carlo Ancelotti’s Real, who secured their 36th title earlier this month, let slip a 4-1 half-time lead to draw their penultimate league match 4-4 at Villarreal, for whom Alexander Sorloth scored all four of their goals.
Arda Guler’s double and efforts from Joselu and Lucas Vazquez put Madrid in full control, but Sorloth, who had headed Villarreal’s first before the break, struck three more times in the second half.
Girona’s 3-1 win at Valencia ensured them a third-placed finish, while Atletico Madrid, already assured of the final Champions League spot, lost 4-1 to Osasuna in their last home game.
Athletic Bilbao guaranteed themselves a Europa League place as first-half goals from Raul Garcia and Iker Muniain sealed a 2-0 home win against Sevilla.
Real Sociedad’s 2-0 win at Real Betis guaranteed them sixth place and Europa League qualification, while Betis will fill the Europa Conference League slot.
Cadiz’s relegation was confirmed after a goalless home draw against Las Palmas coupled with the point earned by Real Mallorca, as they drew 2-2 with bottom club Almeria.
In Serie A, Denzel Dumfries rescued a point for champions Inter Milan in their penultimate match, which ended 1-1 against Lazio.
Inter, crowned champions at the end of last month, trailed to Lazio midfielder Daichi Kamada’s first-half effort before Dumfries headed a late equaliser.
Lazio’s point kept them on course for Europa League qualification, while Romelu Lukaku secured 10-man Roma a 1-0 home win against Genoa.
Lukaku’s late header – despite Leandro Paredes’ second-half dismissal – earned Roma a Europa League place next season.
Third-bottom Empoli’s survival bid will go down to the final day after a dramatic 1-1 draw at relegation rivals Udinese.
M’Baye Niang’s last-minute penalty appeared to have clinched Empoli a crucial win, but Lazar Samardzic equalised from the spot in the 14th minute of added time to keep Udinese one point above the bottom three with one game to play.
Cagliari and Frosinone both boosted their survival hopes with 2-0 and 1-0 wins at relegated Sassuolo and Monza respectively, with five clubs currently hoping to avoid filling the last remaining relegation slot.
On the final day in Ligue 1, Brest sealed their place in the Champions League group stage next season after winning 3-0 at Toulouse, thanks to second-half goals from Mahdi Camara, Jordan Amavi and Kenny Lala.
Lille had to settle for a Champions League qualifying place after being held 2-2 at home by Nice, who finished fifth to take the Europa League spot.
Lyon leap-frogged Lens into the Europa Conference League place following a 2-1 home win over Strasbourg. Lens were held 2-2 at home by Montpellier.
At the bottom of the table, Lorient were cruelly relegated despite beating Clermont 5-0. They finished below Metz – who will play in the relegation play-offs after losing 2-0 at home to champions Paris St Germain – on goals scored in head-to-heads.