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.
Bieber's record company did not immediately respond to a request for comment.
Take ABC13 with you!
Download our free apps for iPhone, iPad, Android and Blackberry devices