As I understand it, mainly from, "Counterpart, A South Vietnamese Naval Officer's War", published by USNI Press in 1998, here's how the battle went down:
On January 16, 1974, several South Vietnamese officers and an American observer traveled on the frigate Ly Thwang Kiet (HQ-16) to the Parcels to investigate intelligence that they had received of Chinese landings there.
They found two Chinese trawlers near Drummond Island supporting PLA forces that had occupied the island. PLA soldiers were also seen on Duncan Island, with a landing craft on the beach and two guided missile gunboats in the area. They reported all of this to Saigon who then dispatched several more vessels to confront the Chinese. Upon arriving, the South Vietnamese Navy contacted the Chinese insisting that they withdraw. But the Chinese told them that it was they who would have to withdraw.
That night the two forces watched each other but there was no engagement.
The next day, January 17, 20-30 South Vietnamese personnel waded ashore on Robert Island. They were unopposed and so they removed the Chinese flag their. During the day, more reinforcements arrived for each side. The South Vietnamese frigate Tran Khanh Du (HQ-4) joined the HQ-16. Two Chinese corvettes (#274 and #271) arrived reinforced Chinese corvettes #389 and #396..
The third day, January 18, the frigate South Vietnamese frigate, Tran Binh Trong (HQ-5) arrived. The commander of the entire South Vietnamese fleet, Colonel Ha Van Ngac, was aboard. In addition, the South Vietnamese corvette Nhat Tao (HQ-10) also arrived.
At this point, there were three South Vietnamese Frigates and one corvette in place as the primary combatants. They faced four Chinese corvettes, which were of two different class vessels. The South Vietnamese had an oversized Platoon of soldiers, while the Chinese had a Marine battalion in place.
Early on January 19, 1974, South Vietnamese soldiers from the Frigate HQ-5 landed on Duncan Island and came under heavy fire from Chinese troops who were already there. Three Vietnamese soldiers were immediately killed and more injured. The Vietnamese troops were completely outnumbered, so they withdrew, the landing having failed. The three Vietnamese frigates and the corvette then advanced on the island with their weaponry, and were confronted by the four Chinese corvettes.
Around 10 am the Vietnamese the frigate HQ-16 and corvette HQ-10 opened fire on the Chinese warships. Vietnamese frigates HQ-4 and HQ-5 promptly joined in. The battle at sea lasted about 40 minutes, with the vessels on both sides sustaining damage. The key to the outcome was that the smaller Chinese vessels came in close and maneuvered to positions where the Vietnamese heavier main guns could not travers to bring them into fire. By so doing, they were able to damage all four Vietnamese ships, especially the corvette, Nhat Tao, HQ-10, whose propulsion was knocked out. The crew of HQ-10 abandoned ship, but her captain, Lt. Commander Nguy Van Tha, remained on board and went down with his ship. On top of this, the frigate HQ-16, was severely damaged by friendly fire from the frigate, HQ-5. This forced HQ-16 to retreat to the west.
Seeing one ship sinking and the other severely damaged and retreating, the remaining two Vietnamese frigates, HQ-4 and HQ-5 also retreated.
The next day, with the Vietnamese naval forces no longer in the fight, Chinese fighters and attack aircraft from Hainan began bombing the Vietnamese troops who had taken up positions on the other islands. Later, the Chinese themselves began landing on these islands. With no air cover, and with their navy standing off, the South Vietnamese soldiers were forced to surrender. The Vietnamese Navy ships fell back and sailed to Da Nang.
South Vietnam requested assistance from the U.S. Seventh Fleet during this confrontation, but the request was denied. The US, who was pulling out of South Vietnam, was not interested in starting a new war with China.
The results were that the Chinese won the battle and occupied the Parcels. Which remain in their position to this day. One Vietnamese corvette was sunk, and the three Vietnamese frigates were damaged. All four of the Chinese corvettes were also damaged. The Chinese had about 20 killed and an equal number injured. The Vietnamese had over 50 killed an 16 wounded.
What made the difference?
Three things in my view.
1) South Vietnam brought to few troops who were defeated in their only opposed landing...and they were not supported in that landing by their Navy. it was only after they retreated that the Navy cme in to try and reduce the defenders...when they were met by the PLABN vessels.
2) The south Vietnamese vessels did not take advantage of their range and stronger weaponry. Instead, they allowed the smaller Chinese corvettes to close with them and negate the advantage. The result was the loss of the naval engagement.
3) The Chinese then used their air power from Hainan, and the uncontested seas to reduce the smaller Vietnamese forces that had landed unopposed. At that point, the result was a foregone conclusion.