London's FTSE 100 fell on Monday but ended well off session lows, and mid-caps cut all their losses towards the close after a surge in new cases of the novel coronavirus in Beijing and underwhelming data from China knocked markets at open.

Leading losses among European peers, the FTSE 100 closed down 0.7% but recovered from a three-week low hit during the session.

BP Plc weighed the most on the commodity-heavy index, sliding 2.2% after saying it would write off up to $17.5 billion (£14 billion) in the value of its assets. A drop in base metal prices also weighed.

Topping the FTSE 100, business supplies distributor Bunzl jumped 9.8% after forecasting an increase in revenue for the first half of the year, while AstraZeneca rose 1%.

The mid-cap FTSE 250 index ended flat as losses in mining <.FTNMX1770> and some consumer stocks were offset by gains in financials and defensive sectors such as real estate and utilities.

Concerns of a slower economic recovery rose as Beijing reinstated curbs after an unexpected spike in cases, and on downbeat China factory data. In Britain, data showed footprint in shopping centres fell nearly 82% from a year earlier.

The travel sector <.FTNMX5750>, one of the biggest casualties of the pandemic-driven slump in demand, was off 1.3%. Low-cost airline easyJet shed 4.6% even as it resumed flying for the first time since March 30.

UK stock markets last week halted a robust two-month rally as optimism around easing lockdowns was dulled by a grim forecast by the U.S. Federal Reserve and a resurgence in COVID-19 cases.

Investors now await the Bank of England meeting later this week.

"We expect them to leave the policy rate unchanged at 0.1% and to add 100 billion of quantitative easing purchases," said Peder Beck-Friis, portfolio manager, global macro at PIMCO, who sees negative rates as unlikely.

(Reporting by Sagarika Jaisinghani, Shashank Nayar and Susan Mathew in Bengaluru; additional reporting by Aaron Saldanha; editing by Uttaresh.V; editing by Jonathan Oatis)