The missile reached an altitude of about 3,000km (1,865 miles) and landed in the sea off Japan, the Japanese national broadcaster NHK said.
It comes three weeks after North Korea’s first ICBM test.
The latest missile flew higher, further and for longer than the one in early July. Its launch has been condemned by a number of countries.
The test – the 14th carried out by North Korea in 2017 – is the latest to be conducted in defiance of a UN ban.
Jeffrey Lewis, a nuclear nonproliferation expert at the Middlebury Institute of International Studies in California, said that initial indications showed the latest missile had a range of about 10,000km – far enough to strike the west coast of the United States and beyond.
The Washington Post reported that Denver and possibly Chicago could now be in North Korea’s range.
The latest missile was launched at 23:41 North Korea time (15:41 GMT) from an arms plant in Jagang province in the north of the country, the Pentagon said.
Korean missile launches at night are rare and it is not clear why it was conducted at this time.
Japanese Chief Cabinet Secretary Yoshihide Suga said the missile flew for about 45 minutes – some six minutes longer than the ICBM tested in early July.
He said it landed in the sea in Japan’s exclusive economic zone – part of the sea that is not within Japan’s territorial waters.
NHK said it reached an altitude of about 3,000km – about 200km higher than the previous ICBM. It landed about 1,000km from the launch site, the Pentagon said.
ICBMs can reach altitudes well outside the earth’s atmosphere. Using sharp trajectories with high altitudes allows North Korea to avoid firing over neighbouring countries.