Real Madrid dropped two points against Real Sociedad on Monday, meaning they stay level with Barcelona on 53 points, from 25 games each.
Both Spanish giants are five points behind leaders Atletico Madrid, who also have a game in hand.
Portu broke the deadlock for the visitors with a big, looping back post header.
Madrid huffed and puffed but found it hard to blow the Basque defensive wall down, until the final stages.
Vinicius struck with a deflected effort from close range in the 89th minute to level for Zinedine Zidane’s side, in the Brazilian’s 100th game for Real Madrid. It was only his 13th goal but potentially an important one.
Real Sociedad will complain that Casemiro should have conceded an early penalty, when he brought down Nacho Monreal, but the officials and VAR ignored it.
Regardless, Madrid's run of five wins in a row across all competitions was halted in its tracks.
Madrid face rivals Atletico on Sunday in a Madrid derby that could change the shape of the title fight.
“I don’t opine about other teams,” said goalkeeper Thibaut Courtois. “Atletico are winning and we have to win on Sunday to get closer to them.”