Jaroslav Halak made 46 saves for New York (26-22-5), including 25 in the first period. It was the Islanders' second win in their past seven home games.
"I'm tired, I'm not going to lie to you," Halak said. "It's a big win. Two points that we need. We need every point right now. We're going to try to keep climbing the ladder over there. Big effort obviously in the third, and the second as well. We did a lot of good things in the second and third. Obviously we know that the first wasn't our best, but we found a way and that's what good teams do."
\[WATCH: All Blue Jackets vs. Islanders highlights\]
Josh Anderson, Cam Atkinson and Nick Foligno scored for Columbus (27-21-4), which has lost three in a row. Joonas Korpisalo made 34 saves.
"There's no point of going down the road of feeling sorry for yourself or negative," Foligno said. "There's enough of that just surrounding us with things that have gone on here. We've got to find a way just to fight through it."
Eberle tied it 3-3 at 2:49 of the third period when Mathew Barzal fought off a defender and managed to kick the puck to Eberle in the slot, where he scored on a wrist shot.
Nelson gave New York a 4-3 lead at 5:14. Korpisalo made a pad save on Ryan Pulock's slap shot from the left face-off circle, but Andrew Ladd got the rebound and sent it across the crease to Nelson for a tap-in two seconds after a slashing penalty against Blue Jackets forward Pierre-Luc Dubois expired.
"It's definitely nice," Nelson said. "We talked about having a good road trip, we get five of six points right before the (All-Star) break, and we come out of the break and lay two eggs and not get any points with how tight the standings are. We're trying to make a push now with 29 games left. It's nice to come back, and hopefully we can build off this."