BA said the move "follows extensive customer research and feedback, which highlighted dissatisfaction with the airline’s current short-haul economy catering".
British Airways is scrapping free meals for short-haul economy fares from next year and inviting passengers to instead pay for Marks and Spencer sandwiches, creating a stir on social media.
The pair announced the tie-up on Thursday, which sees BA joining the no-frills airline model of charging passengers for food and drink.
From January, BA will charge £4.75 ($6.2, 5.5 euros) for a tomato and mozzarella focaccia, £1 for hand cooked crisps and a minimum of £4 for alcoholic drinks. No food item will cost more than £5.
BA said the move "follows extensive customer research and feedback, which highlighted dissatisfaction with the airline's current short-haul economy catering".
But customer Lee Butterley tweeted: "Hey @British_Airways literally no reason to pick you over EasyJet and Ryanair anymore then?"
James Forshaw added: "Wow @British_Airways taking away the free food is one thing, but drinks, even soft ones? Really is no reason to fly BA short haul anymore."
Others welcomed the move, with Jan Brian tweeting: "At last, the chance for some decent food on flights. Don't mess it up!"
BA chairman and CEO Alex Cruz described the tie-up with Marks as "an ideal partnership, providing... customers with a choice of products they recognise and value".