A-League: Melbourne Victory 1 Newcastle Jets 2
The attacker, on loan from Incheon United, struck in each half to see the Jets to the surprise win in the 1,000th game in the A-League's history.
Victory had levelled through James Troisi early in the second half, but they again lacked a cutting edge.
While Newcastle rise to third after bouncing back from their loss to Sydney, the Victory slip to sixth.
The hosts thought they had a penalty inside the first minute when an advancing Mark Birighitti collided with Mark Milligan after Mitch Nichols' clever chipped pass, but referee Alan Milliner waved away the appeals before Pablo Contreras headed a Troisi corner over the crossbar.
The visitors had a glorious chance when Burns' pass from the left found Adam Taggart, but goalkeeper Nathan Coe was out quickly to smother at the striker's feet.
Then, in the 44th minute, Burns scored his first A-League goal since netting for Adelaide in October 2007.
A neat move down the left, where the Jets had plenty of success, led to Adrian Leijer being dragged out of position and Taggart's first-time pass released Burns, who beat Coe at his near post.
The hosts only needed to wait five minutes into the second half to get back on level terms thanks to Troisi.
Short passes on the edge of the area led to Troisi being set away down the right and the on-loan attacker fired a low shot past Birighitti for his sixth goal of the season.
But the Jets were back ahead in the 66th minute and again thanks to Burns.
Milligan appeared to have produced a goal-saving tackle from James Brown's cross, but Burns was at the back post to tuck a finish into the bottom corner to give his side the points.