Barcelona twice fight back from two goals down - and two Wojciech Szczesny howlers - to snatch a dramatic victory at Benfica.