1st reason: The US army had superior conventional weapons but they were ineffective against a country that was not industrialized and an army which employed guerrilla tactics and used the dense jungle as cover.
2nd reason: North Vietnamese soldiers were dedicated to fighting for independence and for communism. They were fiercely loyal to their leadership, which had already provided land reform in the north.
These soldiers were conscripted and served long tours of duty. As a result, the Vietcong became highly experienced and knowledgeable about American tactics
3rd reason: The North Vietnamese were supplied and supported by China and the Soviet Union. A total of $2 billion was given in aid to the fight against America between 1965-1968. This included 8,000 anti-aircraft guns and 200 anti-aircraft missile sites.
4th reason: The Vietcong had an intricate knowledge of the terrain. They won the hearts and minds of the South Vietnamese people by living in their villages and helping them with their everyday lives.
Their tunnel systems, traps and jungle cover meant they were difficult to defeat and hard to find.
Hope this helps a bit :)