Barcelona maintained their fine La Liga form with a remarkable win as they came from behind to beat a Levante side awarded three second-half penalties.
The game burst into life after the interval when Levante defender Son was fouled by Dani Alves, allowing Jose Luis Morales to convert from the spot.
Four minutes later the home side were handed a second penalty after Eric Garcia handballed, only for striker Roger to slam at Barca keeper Marc-Andre ter Stegen.
Barca responded, with Pierre-Emerick Aubameyang heading in a superb Ousmane Dembele cross before two substitutes combined as Gavi teed up Pedri for a sweeping finish.
Ter Stegen's save had offered a springboard for Barca to turn the game but he faced a third penalty after Maxi Gomez was fouled by Clement Lenglet - who had been on the field for less than two minutes - and this time substitute Gonzalo Melero sent the keeper the wrong way to level.
Levante - seven points from safety - looked to have earned a deserved point but Luuk de Jong headed home Jordi Alba's cross in added time, making him the third substitute to score in an incredible second half.
Levante must somehow find a healthy points return in their last seven games to avoid the drop and they will wonder how they did not take something from a night where three penalties fell their way.
They had gone closest in a drab first half when Morales' superb solo run saw him denied by a combination of Ter Stegen and Garcia on the goal line.
But Barca remain the most in-form team in Europe's top-five leagues on a run of 11 wins and four draws from their last 15 La Liga outings.
They were far from at their best here but responded to adversity and - thanks largely to Ter Stegen's key penalty save at 1-0 - move second in La Liga, 12 points behind Real Madrid with a game in hand.
BDST: 1224 HRS, APR 11, 2022