A second-half horror show from Villarreal goalkeeper Geronimo Rulli saw Liverpool come from behind to eventually reach the Champions League final with a degree of comfort on Tuesday night.
The disjointed visitors' healthy two-goal aggregate lead had been wiped out with five minutes of the first half to spare, as Villarreal mounted a stirring comeback at a sodden Estadio de la Ceramica.
Liverpool were behind inside three minutes as Pervis Estupiñan's searching cross reached Etienne Capoue unmarked at the back post, and the former Tottenham midfielder inadvertently squared for Boulaye Dia to slot into the gaping net.
Dani Parejo then fizzed a low drive narrowly wide before being saved by a combination of the woodwork and the referee's whistle at the other end when he was dispossessed and Thiago Alcantara planted a shot onto the crossbar.
The Reds' sloppiness was almost punished when Naby Keita ceded possession to Gerard Moreno. The striker fed Spurs loanee Giovani Lo Celso, who went down as he rounded Alisson but the goalkeeper was adjudged to have taken the ball before the man.
Villarreal hauled themselves level on aggregate in the 40th minute courtesy of more poor Liverpool defending. Capoue easily eluded the attentions of Andy Robertson and crossed for former Arsenal midfielder Francis Coquelin, who easily out-jumped Trent Alexander-Arnold to head into the top corner.
There was a role reversal in the second half as Jurgen Klopp reinvigorated his side with the introduction of Luis Diaz and they benefited from a trio of horrific errors from goalkeeper Rulli.
Alexander-Arnold came within a whisker of restoring Liverpool's aggregate lead ten minutes into the second period, but his vicious strike deflected onto the top of the bar.
The quadruple-chasers didn't have to wait long for a goal, though, as Mohamed Salah found Fabinho in an advanced position on the right flank and Rulli somehow let the Brazilian's strike squeeze through his legs.
A minute after seeing a fine effort deflect just wide, Diaz equalised on the night when he was picked out by Alexander-Arnold's excellent in-swinging cross and nodded the ball downwards and between the keeper's legs once again.
Rulli's misery was compounded with a quarter of an hour to go when he inexplicably came a mile out of his goal and failed to challenge Sadio Mane, who rounded him, kept his composure and slotted the ball into the empty net for 3-2.
There was still time for the Villarreal keeper to make a good save from substitute Curtis Jones, and Capoue ruined his good night's work by receiving his marching orders for a second yellow card late on.
The quadruple is still on for Liverpool. Here's how the players rated...
VILLARREAL VS LIVERPOOL PLAYER RATINGS - CHAMPIONS LEAGUE
1. Villarreal (4-4-2)
GK: Geronimo Rulli - 0/10 - Lost his cool with Salah when he had no real right to. Horrible error as Fabinho blasted it through him, and Diaz's head went through his legs too. Incredibly at fault again as Liverpool took the lead on the night.
RB: Juan Foyth - 5/10 - Clunky start, conceding an unnecessary corner and needless foul in a dangerous area. Couldn't deal with Diaz.
CB: Raul Albiol - 6/10 - Belied his age with some recovery runs and bit into challenges high to disrupt Liverpool's build-up. Not able to maintain control after the break.
CB: Pau Torres - 5/10 - Made a solid start but his game got increasingly worse. Booked for a very hefty challenge on Mane.
LB: Pervis Estupiñan - 6/10 - Wicked delivery in the build-up to the opener. His long passing was exceptional and he dealt with Salah well for the most part.
RM: Giovani Lo Celso - 5/10 - The Spurs loanee was typically tenacious, and also typically lacked quality at times.
CM: Dani Parejo - 4/10 - Uncharacteristically loose in possession early on and fortunate to be saved by a combination of the crossbar and the referee's whistle. No influence after the break.
CM: Etienne Capoue - 6/10 - Mis-kicked shot from yards out provided a perfect assist just three minutes in. Left Robertson for dead and picked up a second assist for Coquelin. Sent off for a second yellow but that made no odds really.
LM: Francis Coquelin - 6/10 - Seemed preoccupied with play-acting initially. Wonderful header into the top corner for 2-0. A nuisance in every sense of the word.
ST: Gerard Moreno - 5/10 - Worked very hard in the first period but was literally hamstrung by an injury. Eventually forced off.
ST: Boulaye Dia - 6/10 - Basically couldn't miss as he reduced the deficit very early. Continued to cause issues with his pace. Faded as the game went on.
SUB: Samuel Chukwueze (68' for Moreno) - 5/10 - Couldn't cause an issue.
SUB: Alfonso Pedraza - (68' for Coquelin) - 5/10 - Got into some dangerous positions.
SUB: Paco Alcacer (80' for Dia) - N/A
SUB: Serge Aurier (80' for Estupiñan) - N/A
2. Liverpool (4-3-3)
GK: Alisson Becker - 5/10 - Exposed by his defence for the opener. No chance with the second and not much to do elsewhere.
RB: Trent Alexander-Arnold - 6/10 - Didn't even get off the ground as Villarreal drew level. Redeemed himself with an exquisite assist for Diaz.
CB: Ibrahima Konate - 5/10 - Solid enough. Went close with a second-half header.
CB: Virgil van Dijk - 6/10 - Rare to see the Dutchman visibly rattled, but he did not enjoy himself in the first period. Grew in authority as things progressed.
LB: Andy Robertson - 3/10 - Lost his man as Capoue snuck in behind him to assist an early opener. Couldn't deal with the Frenchman again as he crossed for the second.
DM: Fabinho - 7/10 - Had his work cut out at the base of midfield but got through plenty of good defending. Blasted Liverpool back in front in the tie after popping up upfield.
CM: Naby Keita - 6/10 - Very fortunate not to be punished after giving the ball away to Moreno. Summed up his first 45. Unexpected assist for Mane.
CM: Thiago Alcantara - 5/10 - Almost a picture-perfect side-foot finish but denied by the referee and the crossbar. Personified his side's early sloppiness, but improved after the break.
RW: Mohamed Salah - 6/10 - Kept quiet generally but popped up with the crucial assist for Fabinho.
ST: Diogo Jota - 3/10 - Anonymous before being substituted at half-time, but that is credit to the Villarreal defence.
LW: Sadio Mane - 6/10 - Fairly quiet before keeping his composure supremely to round the keeper a mile out and slot into the empty net.
SUB: Luis Diaz (46' for Jota) - 7/10 - Game-changer. Went close before restoring the aggregate lead with a downward header.
SUB: Curtis Jones (80' for Thiago) - 6/10 - Went close with his first touch. Drew the foul as Capoue was dismissed.
SUB: Jordan Henderson (80' for Keita) - 5/10
SUB: Kostas Tsimikas (80' for Robertson) - N/A
SUB: James Milner (84' for Fabinho) - N/A