Barcelona bounced back from back-to-back defeats to beat Real Madrid in the Copa del Rey semi-final first leg.
An Eder Militao own goal separated the sides at the Bernabeu despite the hosts having more possession and chances.
It is a welcome result for Barca after they lost to Manchester United in the Europa League and Almeria in La Liga.
There was an intense atmosphere before the game kicked off, with Madrid supporters protesting outside the stadium before kick-off over payments made by Barcelona to a former Spanish referees’ chief.
Xavi’s side defended deep after taking the lead and their discipline earned a narrow advantage to take into the second leg at the Nou Camp on April 5.
Barca are top of La Liga but Xavi’s side will have gone into the game feeling fragile after their elimination from Europe and a shock league defeat at the weekend.
The former midfielder made five changes to his starting team, including an entirely new back four.
The opening moment of noteworthy action was Vinicius Jr throwing Frenkie de Jong to the turf via a headlock, but it was the visitors who took the lead – and in farcical circumstances.
In Barca’s first attack of the game, Franck Kessie’s shot was saved by Thibaut Courtois but ricocheted back off Militao and rolled into the net.
His fellow centre-back Nacho attempted to clear the ball off the line but was unable to save his team-mate’s embarrassment.
It was initially ruled out for offside but stood after the video assistant referee indicated that, while Raphinha had moved early, he was not interfering with play and Kessie was level.
Certainly, Real appeared highly motivated from the start, perhaps with memories of a poor performance in January’s Super Cup defeat to their rivals still in their minds.
As Liverpool experienced last week, when Carlo Ancelotti’s team hit their stride they can overwhelm any opponent – and it appeared as if that could be the case in the early stages.
Luka Modric struck the side-netting in the first minute after beating the offside trap, before Karim Benzema brilliantly controlled and finished a volley from a chipped Vinicius Jr cross – but he was half a yard offside.
Federico Valverde’s lofted second-half effort, palmed away by Marc-Andre ter Stegen, was the closest the home side came to an equaliser.
Madrid continued to dominate possession until the end, but will have to overturn the deficit at the home of their great rivals in order to prevent Barca from moving closer to a domestic trophy treble.