Real Madrid remain eight points adrift of Barcelona at the top of La Liga after failing to break down Athletic Bilbao in a 0-0 stalemate as captain Sergio Ramos saw the 24th red card of his career.
Earlier, Celta Vigo became the first team this season to take points off Barcelona at the Nou Camp in a thrilling 2-2 draw.
Atletico Madrid took advantage of Barca's stumble as Antoine Griezmann's winner against his former club two minutes from time earned a hard-fought 2-1 win over Real Sociedad to move to within six points of the leaders.
Real are now tied for fourth with Sevilla, who beat Deportivo la Coruna 2-0 on the day their coach Eduardo Berizzo was released from hospital just four days after undergoing an operation on a cancerous prostate tumour.
Umtiti blow for Barca
Celta have been a bogey side for Barca in recent years, beating the Catalans once in each of the past three seasons.
A positive start from the Galicians on Celta boss Juan Carlos Unzue's return to the Camp Nou, where he spent three years as Luis Enrique's assistant, was rewarded 20 minutes in when Aspas tapped home on the rebound after a stunning save from Marc-Andre ter Stegen had denied Maxi Gomez.
Celta's lead lasted two minutes, though, as Messi latched onto Paulinho's pass to fire low under Ruben Blanco for his first goal since late October.
Messi then took control of the game as Barca pressed and finally broke Celta's resistence just after the hour when his pass freed Jordi Alba to tee up Suarez for his first goal at the Camp Nou in nearly three months.
An end-to-end encounter swung back Celta's way in a double blow for Barca.
Umtiti pulled up with a hamstring problem that will keep him out for eight weeks as he chased Aspas down the right and the Spanish international then patiently picked out Gomez to fire into an unguarded net.
"It was a series of unfortunate incidents in the one move," lamented Valverde.
"Above all for the injury to Samuel than to give away the goal."
Ramos sees red
However, a bad day for Barca wasn't compounded by Real cutting the gap at the top as the European champions failed to score for the third time in their last nine La Liga games in a game short of clear-cut chances in Bilbao.
"We knew before the game that we could cut the gap. We deserved more today, but we couldn't get the goal," said Real boss Zinedine Zidane.
"I am not concerned. I am disappointed for the players because, playing like that, it is hard to take. We need to think positively and, if we play in that manner, the goals will come."
Karim Benzema struck the post with the visitors best opening inside 10 minutes, but Real also had Keylor Navas to thank for a pair of fine saves to deny Inaki Williams and Aritz Aduriz either side of half-time.
Cristiano Ronaldo was kept in check by an Athletic side that had been eliminated by third tier Formentera in the Copa del Rey in midweek with the Portuguese's only chance coming when he clipped the outside of the post 18 minutes from time.
And Madrid had to see out the final five minutes with 10 men when Ramos saw red for a second bookable offence when he led with his arm in an aerial duel with Aduriz meaning he will miss the visit of his former side Sevilla to the Santiago Bernabeu next weekend.
Unlike their local rivals, Atletico closed in on Barca with their first La Liga win at their new Wanda Metropolitano home since September as Griezmann's return to form continued.
Diego Simeone's men needed to do it the hard way, though, as they conceded for the first time in five games when Jan Oblak brought down Mikel Oyarzabal inside the area and Willian Jose blasted home from the penalty spot.
Scoring goals has been Atletico's problem this season, but they found a breakthrough from an unlikely source when left-back Filipe Luis cut onto his right foot to find the bottom corner 27 minutes from time.
However, Griezmann's bravery was rewarded with a fourth goal in three games when he slid in to meet Saul's looping header despite being sandwiched between a Sociedad defender and the far post.