Thaddeus Young had 20 points to lead the 76ers, and Speights finished with 19 points and nine rebounds as Philadelphia snapped a two-game losing streak.
Brook Lopez had 23 points and 14 rebounds, but the center did not get a call on a drive to the basket with about 14 seconds to play that could have given the Nets the lead.
New Jersey missed three shots that would have given it the lead in the final minute and turned the ball over with less than 5 seconds to play on an inbounds play when a 3-pointer would have tied it.
Andre Iguodala added nine points, nine rebounds and six assists on 4 of 14 shooting, while Louis Williams had 10 points for Philadelphia, which shot 39 percent from the field.
The undermanned Nets seemed on the verge of their first win when Lopez hit two free throws with 1:26 to play to put New Jersey ahead 79-77.
Young then missed a drive to the basket, but Speights got the rebound and converted his three-point play for an 80-79 edge.
Trenton Hassell, who had 13 points, missed a drive to the basket just seconds later but the 76ers gave the Nets a chance when Iguodala missed a 3-pointer with 45 seconds left and then was called for a charging foul with 21.7 seconds to go after Philadelphia had gotten a long rebound on his earlier miss.
Lopez then drove the left side against Samuel Dalembert and the big center seemed to be hit on his arm but no call was made. Dalembert was fouled with 12.2 seconds to go but only hit the second shot leaving Philadelphia ahead 81-79.
After a time out, the Nets put the ball in play and rookie Terrence Williams had a wide-open 3-pointer from the right corner bounce off the rim.
Still New Jersey wasn't done. Young made only one free throw with 5.7 seconds left and the Nets got a final chance after with just under five seconds to go.
However, Rafer Alston had a miscommunication on his inbounds pass and it went right to Philadelphia as the Nets stood in shock on the court and the clock ran out.
The Nets, who trailed most of the game, used an 15-4 fourth-quarter run to take a 75-71 lead with 5:33 to go. Lopez scored the final two baskets in the lane after Simmons tied the score with a jumper from the left wing.
Simmons started the spurt with a 3-pointer and Hassell hit four free throws in the run that included a basket by Alston. A free throw by Speights and Willie Green's only two baskets of the game - a 3-pointer and a jumper, gave Philadelphia a 77-75 lead.
Lopez then scored two straight baskets to give the Nets their 79-77 lead.
NOTES: The start was the first for Nets rookie Terrence Williams. ... New Jersey coach Lawrence Frank got a technical for walking the length of the court to argue a non-call after a turnover by Alston in the third quarter led to a Philadelphia layup. ... Despite having only eight players, forward Sean Williams did not play for New Jersey. ... The 76ers are playing five games in seven days.