The 29-year-old made his Magpies debut in 2000 and has played over 300 games for the club, scoring 70 goals.
Shola Ameobi: "All I've ever wanted is to play for Newcastle United and it is a really happy day for me..
"Newcastle is, and always will be, my club and I'm looking forward immensely to the next three years, beginning this Saturday with the new season opener against Arsenal.
"I would also like to thank the board and the manager for their continued support, which is very much appreciated."
Alan Pardew: "We are delighted to have confirmed Shola's new contract.
"He has done a terrific job for me since I've been at the club and he is also a great character to have around the place.
"It is important to have continuity, and keeping Shola on board helps us achieve that aim."