1월 30일, 새벽의 폭죽놀이를 신호로 베트콩들은 공세를 시작했다. 이들은 사이공뿐만 아니라 남베트남 대부분의 도시(총 41개 지역)에 잠입해 있었기 때문에 남베트남 전역이 전쟁터가 되었다. 또한 미군과 한국군을 제외한 동맹군은 이때 기습을 할 것이라고는 꿈에도 생각하지 못한 데다 당시 남베트남군 대부분이 설을 쇠러 가서 공백이 생겼기 때문에 크게 당황했고 전투는 매우 혼란스럽게 벌어졌다.
그러나 약속된 북베트남군의 지원이 없었고, 베트콩들은 자신들이 도시에서 전투를 벌이면 남베트남 도시 내부에서 봉기가 일어날 것이라 예상했으나 그런 일은 벌어지지 않았다. 게다가 미군은 프랑스군과 달리 화력지원과 보급도 매우 잘 받는 상태였다. 베트콩의 공세는 2~3일만에 대부분 미군에게 진압되었다. 하지만 수도 사이공은 2주, 중부지방의 주요도시인 후에 에서는 한달 가까이 베트콩의 게릴라전에 의한 시가전이 벌어졌다. 이 기간 동안 정부 기능은 사실상 마비되었다. 특히 후에 시내는 상황이 매우 안 좋아서, 원래 외국군대는 간섭군이란 지적을 피하기 위해 도시 방어는 남베트남군이 맡도록 되어 있던 원칙까지 어겨가면서 미 해병대도 투입되어 섬멸전을 벌여야 했다.
그 동안 한국군은 베트콩의 공격을 사전 예측했기 때문에 돌파당한 진지는 한 군데도 없었고, 오히려 이들의 공격을 철저하게 방어해냈다.
본래 작전 내용은 베트콩이 남베트남에서 사건을 벌이면 동시에 북베트남도 군대를 동원하는 것이었다. 하지만 정작 베트콩이 먼저 나선 후에도 북베트남군의 행동은 늦어졌고, 결국 대대적으로 준비한 작전이 실패로 돌아감으로 인해 남베트남을 중심으로 형성되었던 베트콩의 조직은 거의 괴멸되는 상황이 펼쳐졌다. 베트콩은 이런 공세에서 대대적인 물자와 인력을 투입하였는데 공세가 실패로 돌아갔으니 괴멸될 수 밖에 없었다.
전과 측면에서는 후에 시와 케산을 제외하고서는 대부분의 공격이 실패했고, 후에도 미군과 남베트남군의 대대적인 탈환작전 끝에 재탈환당하고 케산 포위전은 미군의 대규모 공습과 공중보급 및 핵 협박으로 실패하는 등 실질적인 성과는 거의 전무하다고 할 수 있었다. 특히 치고 빠지기 식의 비대칭전 전술을 포기하고 야전에서 공세를 감행하는 것은 미군의 장기인 대규모 화력투사 앞에 전력을 고스란히 노출시키는 결과를 낳았다. 당시 간부진의 전멸 및 군수물자의 손실 등 남베트남 내 베트콩 조직의 피해는 심각해서, 나중에 공개된 북베트남군 내부 문서에 따르면 향후 수년 간 베트콩은 독립적인 작전 수행이 불가능할 것이라고 평가했을 정도였다. 실제로 이후 베트콩 조직 내 주도권은 남쪽 출신자가 아니라 북쪽에서 파견된 이들이 가지게 된다.
이 전투는 전술적으로 보았을 때 명백한 베트콩과 북베트남의 패배였다. 미군과 남베트남군은 전사자 5,100여 명을 포함해 도합 20,000명의 사상자를 낸 반면, 베트콩들은 병력의 절반 가량인 45,000명의 전사자를 냈고 특히 전투 경험이 많은 간부급의 피해가 커 조직이 사실상 궤멸되었다. 반면 미군과 남베트남 주둔군에는 큰 피해도 주지 못했고 도시를 장악하는 데에도 실패했다.