Defoe added a second in stoppage time from Seb Larsson's cross, bundling the ball over the line from close range, but replays showed the England striker was offside.
Jordan Pickford made several fine saves from Sam Clucas and Abel Hernandez to keep the hosts at bay, and the result means Hull are now in the relegation zone, a point off 17th-place Swansea with three games remaining following their 1-0 win over Everton.
The defeat was also Hull manager Marco Silva's first at home in the league since March 2014, 42 games ago.
With the shackles off, relegated Sunderland played with more freedom in the first half, and went close earlier on as George Honeyman headed just wide from Jones' cross.
Hull then had two chances in quick succession; first Clucas' half volley from 15 yards was beaten away well by Pickford, before Harry Maguire's 20-yard effort flew just wide of the left-hand post.
Hernandez, who had returned to the starting XI for Marco Silva's men, then did superbly to weave past two Sunderland defenders on the right of the box, but his left-footed effort went just wide of the far post.
Defoe almost put Sunderland ahead early in the second half, but his effort when one-on-one with Eldin Jakupovic was saved by the Hull stopper, while Alfred N'Diaye made a hash of a clear chance at the other end with Pickford stranded.
Lazar Markovic saw a header tipped over the bar by Pickford before the hour mark, and John O'Shea then did brilliantly to block Hernandez's effort from 10 yards.
Sunderland took the lead with 21 minutes remaining through Jones, who drifted into the six-yard box unmarked from Honeyman's corner to head past Jakupovic.
Oumar Niasse poked an effort wide of the right-hand post with 15 minutes to go, before Pickford's heroics denied Hull again, this time beating away Hernandez's first-time effort from N'Diaye's centre.
Hull pushed forward, but it was Sunderland who got the next goal, as Defoe finished off his thigh from close range (90+2) from substitute Larsson's delivery, though he was half a yard ahead of Maguire when the ball was delivered.
Hull: Jakupovic (6), Elmohamady (5), Robertson (6), Maguire (6), Ranocchia (5), N'Diaye (5), Clucas (6), Markovic (6), Grosicki (7), Niasse (5), Hernandez (5).
Subs used: Huddlestone (5), Evandro (NA), Mbokani (NA)
Sunderland: Pickford (8), Jones (7), Manquillo (6), O'Shea (8), Kone (7), Denayer (7), Ndong (6), Borini (6), Honeyman (7), Anichebe (6), Defoe (6).
Subs used: Larsson (NA)
Man of the match: Jordan Pickford