But Zuckerberg's appearance failed to satisfy MEPs who accused him of dodging questions and criticised a format that gave the parliament's political leaders far more time to give long-winded speeches.
His live-streamed testimony in Brussels was the latest stop on a tour of apology for the Cambridge Analytica scandal that saw him quizzed for ten hours in the US Congress in April, and will take him to Paris on Wednesday.
Zuckerberg said that while Facebook has brought in new features to connect people, it had become clear in the last two years that they "haven't done enough to prevent these tools from being used for harm".
"And that goes for fake news, foreign interference in elections or developers misusing people's information. We didn't take a broad enough view of our responsibility," he said in his opening statement.
"That was a mistake, and I'm sorry for it."
The European Parliament invited Zuckerberg in March after Facebook admitted that up to 87 million users may have had their data hijacked by British consultancy firm Cambridge Analytica.
The firm, which was working for US President Donald Trump's 2016 campaign, has since declared bankruptcy.
Zuckerberg originally tried to send a junior executive instead but finally bowed to pressure to appear. However, he only agreed for it to be live-streamed on Monday after initially insisting on it being behind closed doors.
Appearing calm and unruffled during the 90-minute hearing, Zuckerberg welcomed the EU's sweeping new personal data protection rules, which come into effect in three days, saying that his website would be "fully compliant".
In that spirit, Zuckerberg said Facebook was bringing in new features including a special "clear history" button that would allow them to delete any cookies or browsing history details it stores.
Zuckerberg admitted that Facebook had been "too slow to identify Russian interfering" in the 2016 US presidential ballot but was working with European governments for future elections.
In the run-up to last year's French elections Facebook "found and took down more than 30,000 fake accounts", he said.
But some European lawmakers were still unhappy with the format in which Zuckerberg answered questions for only 25 minutes - half as long as the time it took the parliament's political leaders to get through their long-winded questions.
"Today's pre-cooked format was inappropriate and ensured Zuckerberg could avoid our questions," Guy Verhofstadt, the European Parliament's Liberal leader, tweeted afterwards.
The former Belgian prime minister asked Zuckerberg during the hearing if he wanted to be remembered as a "genius who created a digital monster".
Manfred Weber, the German head of the centre-right European People's Party, the largest group in parliament, said the Facebook chief was "not very convincing" and "did not answer all our questions".
But European Parliament President Antonio Tajani - who invited Zuckerberg and arranged the meeting - called Zuckerberg's visit a "success" even if he said his apology was "not enough" and required follow up.
Zuckerberg meanwhile pledged that Facebook would make fresh investments to protect its users in the wake of the scandal - with many of those in Europe where he plans to have 10,000 employees by the end of the year.
"It's going to take time to work through all of the changes we must make. But I'm committed to getting it right, and to making the significant investments needed to keep people safe," he added.
"I expect this will significantly impact our profitability. But I want to be clear: keeping people safe will always be more important than maximising our profits."
Zuckerberg is due to meet French President Emmanuel Macron in Paris on Wednesday.