Celtic took a massive step towards the last-16 of the Champions League with an astonishing victory over Barcelona at Celtic Park.