North Korea, second in the group, will face Group A winners Australia in the quarter-finals on Friday in a repeat of the 2010 final, which Australia won on penalties. China, who won all of their group games, will play the second-placed team in Group C on Saturday.
Three-time champions North Korea took the lead in the 32nd minute when Han Jin-Hong's cross from the right was put away by Kim Kyong-Yong at the Western Sydney Stadium.
China equalised two minutes later, when Shao Ziqin played a corner back to Chen Qiaozhu, whose low left-footed shot from outside the box went through a cluster of defenders and into the net.
China, seeking a record-extending 10th title, took the lead in added time before the break when Zhang Chengxue sneaked past the North Korean defensive line to send a perfect cross for Wang Shuang to fire home.
Zhang was initially flagged offside, but a VAR review overturned the decision, and the goal stood. The North Korean players and staff protested the decision as the referee booked coach Ri Song-Ho and declared half-time.
North Korea, who have reached the semi-finals in their last nine appearances, thought they had equalised in the 80th minute, but Choe Il-Son's strike was overturned by VAR due to offside.
In Perth, Uzbekistan's Diyorakhon Khabibullaeva scored early against Bangladesh, before Dildora Nozimova struck twice within four minutes in the second half and Nilufar Kudratova completed the rout in the 4-0 win.
Uzbekistan, who finished third in Group B with three points, reached the quarter-finals as one of the tournament's two best third-placed teams thanks to scoring more goals than the Philippines who came third in Group A.
