The singer insisted he had only been 40 minutes late, and blamed "technical issues."
But, he added in a tweet to his 35 million followers: "There is no excuse for that and I apologize for anyone we upset. However it was great show and I'm proud of that."
Concertgoers said the teenage star appeared onstage at the 02 Arena on Monday at 10:30 p.m., when the start time had been listed as 8:30. Many in the audience, who had been waiting for hours, faced the choice between leaving early or missing the last trains home.
"There were teenage girls crying outside," said financial analyst Louise Cooper, who had taken her 9-year-old daughter to the gig as a birthday present.
"The ladies sitting with us had to leave after 20 minutes and they had spent 70 quid (70 pounds, about $106) each on a ticket, which is really bad.
"It's one thing if your demographic is 50-year-olds, but his demographic is lots of little girls who need to go home and go to bed."
Tracy Wilson, who attended the show with her teenage daughter, said people began booing when Bieber had not appeared by 9:30. She called the lack of explanation "disgusting."
The venue apologized on its Twitter feed "to all the Justin Bieber fans for the lateness of his show tonight."
Critics said the Canadian star, who turned 19 on Friday, risked alienating fans by behaving with the same disregard for timekeeping as more hard-edged rock stars.
John Aizlewood in the Evening Standard newspaper said Bieber had shown contempt for young fans, leaving them "exhausted, disillusioned and probably late for school this morning."
Bieber, who is due to play three more nights at the venue Tuesday through Thursday, has been photographed out on the town several times during his current British tour.
"Since I have been here it hasn't been easy with the press at times but I have loved it," Bieber tweeted.
"I never have any intent to upset or let anyone down. And I'm not okay with things being exaggerated. Once again sorry for anyone upset."
He promised that he would put on a "great show" Tuesday - and it would start on time.