Felton hit a 20-footer with 49.8 seconds left to give the Bobcats a 92-91 lead. On the Sonics' next possession, Earl Watson turned the ball over to foil Seattle's chance to respond.
Felton was then fouled with 9.6 seconds left and he hit both shots. Kevin Durant attempted 3-pointer with 5 seconds left bounced off the rim.
Jason Richardson finished with two free throws with 5 seconds remaining to seal the win. Luke Ridnour's layin at the buzzer provided the final margin.
Richardson finished with 27 points, Felton had 21 and Emeka Okafor had 19.
Durant, who had scored at least 20 points in four consecutive games, lead the Sonics with 18 points. Earl Watson had 16.
The two teams came in with a combined 49 games behind first place in their divisions. The Bobcats (27-45) have the fourth worse record in the East.
The Sonics (17-56), with the worst record in the Western Conference, have lost 13 of their last 15. The team may have only five more home games here in franchise history in Seattle. The team's new ownership, under Clay Bennett, is building up for a move to Oklahoma City, perhaps by next season.
The Bobcats have won two in a row and three of their last four. They beat the Los Angeles Lakers on Wednesday night.
The Bobcats, leading by just two at the half, had an 8-point lead, 64-57, midway through the third quarter. But the Sonics closed out the last 6 1/2 minutes by scoring 19 of the final 27 points for a 76-72 lead at the buzzer. Watson had 10 points in the quarter.
The Bobcats attacked the Sonics from long range to open the final period, with successive 3-pointers by Earl Boykins, Gerald Wallace and Richardson for a 82-78 lead at the 9:16 mark.
Donyell Marshall stroked a 3-pointer from the left side of the arc with 3:08 left to give the Sonics lead at 87-86.