Cristiano Ronaldo scored his 400th goal for Real Madrid as Zinedine Zidane's side closed in on a first La Liga title since 2012, easing to a 4-1 win over Sevilla while Neymar hit a hat-trick for Barcelona, who thrashed Las Palmas 4-1.
The two sides are equal on 87 points with Barcelona leading on their head-to-head record although Real have a game in hand and need only four points from their final two matches to take the title.
"When the going gets tough we know we ... will find solutions with our play," Zidane said. "We fully deserved the victory."
Defender Nacho Fernandez put Real ahead in the 10th minute with a free-kick, sidefooting the ball into the bottom corner to flummox Sevilla, who were still preparing their defensive wall.
Ronaldo netted his milestone goal in the 23rd minute from close range and then added number 401, restoring Real's two-goal advantage in the 78th minute with a curling shot into the top corner after Stevan Jovetic had pulled one back for Sevilla early in the second half.
Toni Kroos got the fourth goal in the 84th to add an extra shine to a comfortable last home win of the season for Real, who will play the Champions League final against Juventus next month with the possibility of winning a first league and European Cup double since 1958.
In the Canary Islands, Luis Suarez laid on a splendid pass for Neymar to open the scoring for Barca in the 25th minute and then the Uruguayan capitalised on a through-ball from the Brazilian to lob over goalkeeper Javi Varas in the 27th minute. Neymar also achieved two quick-fire finishes from close range in the 67th and 71st.