С первых минут команды играли осторожно, время от времени создавая опасные моменты. В начале игры Одоевский справился с дальним ударом Соболева, а после этого зенитовцы завладели инициативой и стали играть первым номером, правда, мяч весь тайм держался в центральной зоне.
На 37-й минуте Дуглас Сантос сделал передачу в штрафную, но Чистяков, набегавший на линию вратарской, не смог подстроиться под мяч и упустил точный удар. Петербуржцы продолжали создавать комбинации у чужой штрафной, но больше опасных моментов до конца тайма не создали. «Спартак» же наоборот, в компенсированное время штурмовал ворота сине-бело-голубых, но защитники «Зенита» успешно блокировали удары. 0:0 – с таким счетом команды ушли на перерыв.
Вторую половину матча активнее начали спартаковцы, и на 49-й минуте они открыли счет. После подачи Игнатова Соболев сыграл на опережение и «рыбкой» пробил в ближний угол. После гола арбитры обратились к ВАР из-за сомнительного стыка с участием Хлусевича и Дугласа Сантоса в начале атаки, однако они не усмотрели нарушения правил и засчитали мяч.
На 62-й минуте произошли первые замены. На поле вышли Круговой и Дзюба, а спустя десять минут Мостовой и Оздоев.
Петербуржцы тем временем продолжили владеть мячом на половине поля спартаковцев, в то время как москвичи контратаковали. Вскоре Сантос на фланге поборолся с Николсоном и отобрал мяч вблизи штрафной «Спартака», а затем отдал передачу в штрафную площадь на Мостового. Тот покатил мяч под удар набегавшему Оздоеву. Магомед мощно пробил, но попал в игрока обороны соперника. За 9 минут до конца матча Ерохин вышел на поле вместо Сергеева.
На 90-й минуте Дзюба поборолся с двумя защитниками, Ерохин оказался первым на мяче и столкнулся с вратарем хозяев Селиховым, а мяч отлетел к Малкому, который и и поразил ворота. Однако судья сразу же обозначил, что гол не засчитывается. Тем не менее после ВАР судьи назначили пенальти, а к мячу подошел Андрей Мостовой: удар в правый нижний угол – и 1:1 на табло!