Media playback is not supported on this device
The home challenger dominated in a one-sided bout but one judge gave the fight to Haskins in a split decision.
Bristol fighter Haskins, who was making his third defence, was floored twice and bravely held on to the final bell.
"I always knew I would be a world champion although I had to dig deep," Burnett told Sky Sports.
Both fighters sustained a cut following a clash of heads in the second round at the SSE Arena.
Burnett, 25, edged the opening three rounds before seizing total control as his powerful right hand pushed Haskins back.
Haskins hit the canvas for the first time in the sixth round and the 33-year-old was floored again in the 11th.
He beat the count both times and was saved by the bell in the 11th as Burnett pinned him against the ropes.
Burnett was awarded the decision 119-107 on two cards, with the 118-108 in favour of Haskins producing a stunned response from the crowd and prompting promoter Eddie Hearn to later say he thought the judge had mixed up the boxers.
"I promised everyone that this belt would stay in Belfast and it has," added Burnett.
"Haskins made me work but I did it and it is my dream - I'm the champion of the world."
Ryan Burnett has won the IBF world bantamweight title with an impressive points victory over champion Lee Haskins in Belfast.