Against the run of play, Ghana went ahead in the 24th minute when Mohammed Salisu struck from close range after South Korea failed to clear a free kick and Mohammed Kudus add a second with a glancing header to give the African side a 2-0 halftime lead.
South Korea came roaring back, however, with two daring Cho Gue-sung headers three minutes apart to level the seesaw match.
Kudus grabbed the winner in the 68th minute when he was left unmarked in the penalty area and slotted home past a diving Kim Seung-gyu.
Ghana, the lowest-ranked team in the tournament at 61st, joined Portugal at the top of the group standings on three points with Uruguay and South Korea on one. Portugal and Uruguay play later on Monday.