Loading...
Barnes had two years remaining on his previous deal but Newcastle convinced the England international to extend his stay at St James' Park ahead of the new season.
He had been linked with a move to Aston Villa, who are looking for new forwards after selling Morgan Rogers to Chelsea.
Barnes's decision is a major boost for Newcastle after Anthony Gordon's move to Barcelona and Sandro Tonali's switch to Tottenham earlier in the close-season.
"It feels great to sign this new contract so early before the new season starts. It's been an amazing journey so far and I'm delighted to continue that," Barnes said.
Barnes, who joined Newcastle from Leicester in 2023, enjoyed a fine campaign last season, with 16 goals in 57 games in all competitions.
The 28-year-old has 30 goals in 120 career appearances for the Magpies.