Преимуществом в начале матча владели гости, которые раз за разом терзали оборону питерского клуба и заставляли вступать в игру Юрия Лодыгина. А вот у «Зенита» игра в атаке не ладилась, в единственном опасном моменте Аксель Витсель пробил сильно выше ворот.
А на 23-й минуте «Порто» реализовал свое преимущество в забитый мяч. Данило в очередной раз здорово подключился в атаку и вырезал навес точно на голову Лучо Гонсалесу, который переиграл в воздухе Ансальди и пробил в угол. Лодыгин среагировал поздно и не стал прыгать.
На 27-й минуте Спаллетти пришлось сделать вынужденную замену — вместо получившего повреждение Мигеля Данни вышел Александр Кержаков. А минуту спустя счет сравнялся.
Витсель в касание перевёл мяч на Широкова, который сделал острую передачу на Халка. Первыми к мячу успевали вратарь и защитник «Порту», но оба игрока гостей понадеялись друг на друга, притормозили, в итоге столкнувшись, а Халк на скорости подхватил мяч и закатил его в пустые ворота.
На последних минутах первого тайма «Порто» мог выйти вперед. Шатов нарушил правила, Жосуэ Пескейра исполнил подачу в штрафную площадь со стандарта, мяч никого не задев направился в ворота, ударился о землю, но Лодыгин спас «Зенит».