Jordan Ayew gave visiting Swansea the lead against the run of play an hour in when goalkeeper Karl Darlow saved his header but not his follow-up.
Newcastle, which hasn’t won at home since Oct. 21, made the lead last only seven minutes. Joselu scored just four minutes after being sent in when he recycled Ayoze Perez’s blocked effort to squeeze a low shot inside the far post.
That lit up both sides, and in a frenzied end, Swansea substitute Wilfried Bony saw his injury-time shot cleared off the line by DeAndre Yedlin.
Swansea remained on the bottom of the standings, while Newcastle moved closer to mid-table.