The 33-year-old Englishman had trailed 10-4 at one stage but just as he did against Ronnie O'Sullivan in 2014 he fought back to win, becoming only the fourth player in the past 40 years to retain the title.
It was also the third world title in the last four editions for the player fondly known as "The Jester from Leicester".
"I can't believe it, I am still pinching myself now," Selby told the BBC.
"From 10-4 to get to 10-7 yesterday, I was over the moon as I had nothing left. He outplayed me yesterday. Today I came back fresh and was a lot better.
More From This Section
"To have three world titles is unbelievable and to be one of only four players to defend it is something I could only dream of."
Selby showed character and grit in the final session when leading 16-14 and ahead in the frame he was judged to have fouled when trying to pull off a snooker behind the black.
Selby contested the foul but after a brief moment of doubt the match official stuck to his original decision and Higgins went on to win it to close the gap to 16-15.
"I thought it touched, Jan (Verhaas) said it didn't and I trust him," said Selby later of the referee.
Although Higgins briefly had the upper hand in the next frame all it needed was one error and Selby took full advantage to seal victory with a break of 75.
Both players sportingly hugged with Selby paying a warm tribute to his rival.
"Big congratulations to John, he is a great guy, and one of the all-time greats and it is so great to play him in another final," said Selby, who lost to Higgins in the 2007 final.
"Mark is granite, just granite," the Scot said.
"In the second session I had my chances, I missed a pink into the middle bag and I could have gone 9-3 ahead.
"That was a big, big frame. Mark cleared up under extreme pressure. He is a fantastic champion.
"It has been an unbelievable tournament, I gave everything. I came up short to a great champion. I'm proud of myself but he was too good on the day.