Debutant Paul Smyth was the hero thanks to a late winner just minutes after coming on as a second-half substitute.
The hosts were on the back foot from the off and their poor start was punished as they conceded after just seven minutes played.
Jamie Ward had the ball in the back of the South Korean net on 13 minutes, firing home from close range following a set piece, but the goal was disallowed for offside.
Nonetheless, Norn Iron were able to get back on level terms with a well-worked free kick straight off the training ground.
The set piece was played short to Ward down the right of the box and crossed low into the six-yard box, where Kim Min-jae's attempted clearance was bundled into the back of the visitors' net.
Magennis then came close to adding a goal of his own just after the restart, but his scooped effort flew just over the crossbar in a bright start to the second half for the hosts.
Both sides continued to trade blows but an inspired substitution by O'Neill saw Northern Ireland claim a superb late winner.
Smyth was brought into the fold on 84 minutes and, just two minutes later, the Queens Park Rangers forward was on hand to smash the ball into the left-hand corner of the net on the turn.
NORTHERN IRELAND (4-3-3): Carson; Hughes (McLaughlin 18'), McAuley, Evans (Cathcart 68'), Lewis; Evans (Washington 62'), Norwood (McNair 71'), Saville; Ward (Boyce 62'), Magennis, Jones (Smyth 82')
SOUTH KOREA (4-3-3): SG Kim; YJ Lee, HS Jang, MJ Kim, JS Kim (MW Kim 35'); JH Park (CM Lee 62'), SY Ki (WY Jung 67'), JS Lee; CH Kwon (HC Hwang 62'), SW Kim, HM Son (KH Yeom 75')