The Lego Batman Movie has won the weekend for the second week in a row at the US box office, easily holding off the challenge of Fifty Shades Darker (also in its second week) and new arrival The Great Wall.

According to estimated figures, Lego Batman came in with $34.22m, a drop of 35% from last weekend’s $53m – holding up well compared with Fifty Shades, which lost 55% to end with $20.97m. The previous weekend’s contest had been much closer, with the latter film managing $46.61m, and going on to top the full week chart (taking $68.69m to Lego Batman’s $64.56m) – presumably due to its popularity on Valentine’s Day, when it took $11m.

Both films comprehensively defeated The Great Wall, the Zhang Yimou-directed fantasy action thriller starring Matt Damon, which arrived in America on the back of huge success in China (over $170m) as well as an ongoing row about “whitewashing”. The Great Wall was not expected to set the US box office alight, and performed accordingly – taking $18.1m to land in third – but for a film budgeted at $150m it will count as a nut not cracked.

Hidden Figures, Split and La La Land are still plugging away in the lower reaches of the chart, with $7.1m, $7m and $4.5m respectively: all have taken over $120m each and now appear as box-office evergreens. That cannot be said of A Cure for Wellness, the Gore Verbinski horror film that flopped to No 10 in the chart in its opening weekend, with $4.2m, having failed to shake off controversy over its “fake news” marketing campaign.