Betis's livewire winger Junior gave the visitors a deserved lead in the 20th minute, finishing off a hugely impressive counter-attack that had started in their own penalty area, while captain Joaquin doubled their lead in the 35th after another venture down the wing from Junior.
All of that is evidence of the issues that Valverde is dealing with this season.
The Catalans are however sitting atop of the table with 24 points from 12 games - just one point better than Atletico Madrid and seven better than Real Madrid at the moment.
But the recovery stalled three minutes later as Marc-Andre ter Stegen let Lo Celso's shot slip through his fingers and drop into the far corner for 3-1.
The only blot for Solari was a spate of injuries which saw Casemiro, Sergio Reguilon and Nacho all forced off. Gareth Bale also took a knock to his left ankle in the first half but was able to continue.
Betis had squandered several chances before Junior broke the deadlock although it took an outstanding save from visiting goalkeeper Pau Lopez, formerly of Barca's neighbours Espanyol, to prevent Clement Lenglet from levelling before Joaquin made it 2-0.
Betis undid Barcelona by pressing high up the pitch and mounting quick attacks.
Messi briefly rekindled the comeback in the 79th when he threaded a pass forward for substitute Munir El Haddadi, who laid off for Vidal to reduce the deficit to 3-2.
First, Rakitic was sent off, a second yellow card for a late challenge on Lo Celso, and then Canales pushed in Betis' fourth from Junior's cross.
His second was a tap in from close range. "We showed our character and knew how to read the match perfectly".
"We understand that any player theoretically can play the game, but of course there is always a period where you need to be careful", he said.