In a speech in Sydney, McCain said China was asserting itself globally, best illustrated by militarizing artificial islands in the South China Sea, a claim repeatedly rejected by Beijing.
"I think it is very clear that the Chinese by filling in these islands are militarizing them and that is in violation of international law," the Arizona senator said.
McCain's comments are set to escalate tensions between the United States and China just days before delegates from both countries are scheduled to attend a regional security conference in Singapore.
China claims most of the resource-rich South China Sea, through which about $5 trillion in ship-borne trade passes every year. Neighbors Brunei, Malaysia, the Philippines, Taiwan and Vietnam also have claims on the strategic waterway.
The United States estimates Beijing has added more than 3,200 acres (1,300 hectares) of land on seven features in the South China Sea over the past three years, building runways, ports, aircraft hangars and communications equipment.
To counter the perceived Chinese aggression, the United States has conducted so-called freedom-of-navigation exercises, the most recent of which was conducted by a U.S navy warship near Mischief Reef in the disputed Spratly Islands.
At the same time, US President Donald Trump is seeking China's cooperation to rein in ally North Korea's nuclear and missile programs.
Allies such as Australia have so far refused to participate in freedom-of-navigation exercises in the fear of alienating Beijing.
While McCain stopped short of calling on Australia to undertake the exercises, the former US presidential nominee said allies must work together to find a peaceful solution.