Liverpool were gifted a fourth minute lead through an unfortunate own goal by Juhani Ojala. Poor Liverpool defending allowed Raphael Nuzzolo to level in the 38th minute, only for Andre Wisdom to head Liverpool back in front almost immediately.
Ojala equalised and Gonzalo Zarate put the Swiss ahead with a cool finish. Then Uruguay defender Sebastian Coates made it 3-3 and two goals from substitute Jonjo Shelvey won the game for the Reds.
Shola Ameobi cut a disappointed figure as Newcastle played out a goalless draw away to Maritimo.
The 30 year old hit the woodwork twice and was thwarted by keeper Romain Salin.
Midfielder Dan Gosling also hit the post on a frustrating evening for the Magpies in Madeira.
Chile forward Eduardo Vargas scored a hat-trick to propel Napoli to a 4-0 win over AIK Stockholm.
Udinese also provided some late drama as striker Antonio Di Natale scored an injury time equaliser to give them a 1-1 draw at home to big-spending Russians Anzhi Makhachkala.
Spurs found the net three times but all were disallowed, two somewhat harshly, particularly Steven Caulker whose late header was penalised for pushing.
Marseille, with Joey Barton making his debut, score twice in the final eight minutes to overturn a two goal deficit in the 2-2 draw at Fenerbahce.
Goals from Caner Erkin and Alex but the home side in control but Mathieu Valbuena halved the deficit in the 82nd minute before Andre Ayew's injury time header earned the in-form Ligue 1 leaders a point.
Inter Milan needed an injury-time leveller from Yuto Nagatomo against Rubin Kazan in a 2-2 draw at the San Siro.
The Russians took an early lead through Alexander Ryazantsev when he converted the rebound after Samir Handanovic had saved Bibras Natkho's weak penalty, but the Italians restored parity just before the break from teenage striker Marko Livaja.
Rubin had looked to be on for a shock win just six minutes from time when Jose Rondon regained the lead, only for Nagatomo to volley home late-on.