Trận đấu bắt đầu với tốc độ cao. Cả hai đội chủ động pressing ngay từ những phút đầu, khiến các pha phối hợp đều diễn ra trong điều kiện bị áp sát liên tục. Văn Tú là người đầu tiên thử vận may bằng pha ngoặt bóng và dứt điểm ở phút 15 nhưng thiếu chính xác.
Cơ hội nguy hiểm nhất của Thể Công Viettel đến ở phút 18 khi Lucao vượt qua thủ môn Nguyễn Filip, nhưng cú dứt điểm của anh bị hậu vệ Công An Hà Nội phá ngay trên vạch vôi. Chỉ một phút sau, Đình Bắc sút tung lưới Viettel từ đường tạt của Stefan Mauk, nhưng VAR vào cuộc và xác định việt vị, bác bỏ bàn thắng.
Đến phút 32, áp lực của Công An Hà Nội đã được cụ thể hóa. Leo Artur đột phá tạo nên tình huống hỗn loạn trong vòng cấm, để Lê Văn Đô nhanh chân sút tung lưới Nguyễn Văn Việt, mở tỉ số 1-0.
Bị dẫn trước, Viettel vùng lên mạnh mẽ. Trương Tiến Anh liên tục gây sóng gió với những pha leo biên và căng ngang chất lượng. Đến phút bù giờ thứ tư của hiệp một, từ quả phạt góc của Tiến Anh, Wesley Nata bật cao đánh đầu hiểm hóc, gỡ hòa 1-1. Hai đội bước vào giờ nghỉ trong thế cân bằng.
Bước sang hiệp hai, thế trận tiếp tục diễn ra hấp dẫn. Phút 49, Đình Bắc tung cú sút xa nguy hiểm sau đường chuyền dài từ Quang Hải. Không lâu sau đó, Công An Hà Nội bỏ lỡ cơ hội khó tin khi Adou chỉ cách khung thành trống 2m nhưng lại đệm bóng vọt xà.
Sau nhiều cơ hội, Công An Hà Nội lại vượt lên ở phút 77. Rogerio Alves phối hợp nhịp nhàng để Stefan Mauk tung cú sút hạ gục Văn Việt, nâng tỉ số lên 2-1.
Tuy nhiên, bước ngoặt đến ở phút 84. VAR xác định trung vệ Đình Trọng phạm lỗi với Khuất Văn Khang trong pha bóng có khả năng dẫn đến bàn thắng. Anh bị truất quyền thi đấu, khiến Công An Hà Nội chỉ còn 10 người.
Đến phút 90+2, VAR lại can thiệp và trao cho Viettel quả phạt đền sau khi Rogerio Alves phạm lỗi trong vòng cấm. Lucao không mắc sai lầm, gỡ hòa 2-2, đưa trận đấu vào loạt luân lưu.
Trên chấm 11m, Công An Hà Nội đá trước. Leo Artur mở màn thành công, nhưng ngay sau đó, Cao Pendant Quang Vinh sút hỏng. Ở phía bên kia, Trương Tiến Anh và Khuất Văn Khang đều hoàn thành nhiệm vụ, giúp Viettel dẫn 2-1.
Rogerio Alves gỡ hòa 2-2, rồi Xuân Tiến nâng tỉ số lên 3-2 cho Viettel. CAHN tiếp tục chịu thiệt khi Stefan Mauk sút hỏng lượt thứ ba. Tưởng như Wesley Nata đã nâng tỉ số lên 4-2 khi bóng đập xà và nảy xuống, nhưng VAR xác định bóng chưa qua vạch vôi.
Lê Văn Đô giữ hy vọng cho CAHN khi ghi bàn lượt thứ năm, gỡ hòa 3-3. Nhưng ở loạt cuối cùng, Lucao một lần nữa đứng trước điểm 11m và dứt điểm lạnh lùng, ấn định chiến thắng 4-3 cho Thể Công Viettel.
Sau 90 phút nghẹt thở kết thúc 2-2, Thể Công Viettel bản lĩnh hơn ở loạt sút luân lưu và giành quyền vào tứ kết. Công An Hà Nội, dù thi đấu ấn tượng suốt trận, phải chấp nhận dừng bước đầy tiếc nuối tại sân Hàng Đẫy.
Tỷ số chung cuộc: CAHN 2-2 Thể Công Viettel (pen 3-4)
Ghi bàn: Lê Văn Đô 32; Stefan Mauk 77' - Wesley Nata 45+4'; Lucao 90+2' (pen)













