J.R. Smith scored 37 points, his third consecutive 30-point outing, Carmelo Anthony had 32 points and Raymond Felton added 18 for the Knicks, who have the longest current winning streak in the NBA. They built a 30-point lead that was reduced to single digits for the second game in a row.
Gerald Henderson tied a career high with 35 points for the Bobcats. Kemba Walker added 16, Michael Kidd-Gilchrist had 14 and Ben Gordon finished with 12 to narrow a deficit that was at one stage over 30 points.
At Minneapolis, Nikola Pekovic had 22 points and 15 rebounds and Ricky Rubio added 17 points and seven assists to help the cellar dwelling Minnesota Timberwolves stun division leaders Oklahoma City.
Elsewhere, Evan Turner scored 23 points in the Philadelphia 76ers 97-87 win to send the Cleveland Cavaliers to its season-high seventh straight loss and Paul Pierce had 20 points, 10 assists and 10 rebounds to carry the Boston Celtics to a 118-107 victory over the Atlanta Hawks.
Also on Friday, the Orlando Magic topped the Washington Wizards 97-92, while the Toronto Raptors outscored the Detroit Pistons 99-82.
The Utah Jazz beat the Portland Trail Blazers 105-95 and the Denver Nuggets were 109-87 winners over the Brooklyn Nets.