Mahmood and Flintoff received good support from James Anderson, who bowled a tidy 10-over spell for 38 runs after skipper Michael Vaughan chose to bowl first on a good pitch..
Upul Tharanga (62) and Sri Lanka skipper Mahela Jayawardene (56) were the major contributors in an innings which never took off after dangerous opener Sanath Jayasuriya had made a typically rapid 25.
England, after captain Michael Vaughan won the toss and elected to field on a pitch with moisture still in it, saw James Anderson begin with a maiden to Tharanga.
But, at the other end, Sajid Mahmood's first ball was off target and leg-glanced for four by Jayasuriya who later produced a trademark square cut for four through backward point when the bowler was off-line.
Jayasuriya, who scored 115 in Sri Lanka's 113-run over the West Indies on Sunday, then top-edged a pull off Mahmood which still had enough on it to fly over fine leg for six.
Last year Sri Lanka beat hosts England 5-0 in a one-day series, culminating in an eight-wicket win at Headingley in July where left-handers Tharanga (109) and Jayasuriya (152) shared a world record first-wicket stand of 286.
But Mahmood ensured there was nothing like a repeat of that partnership.
Jayasuriya, playing defensively with an angled bat, inside-edged Mahmood onto his stumps for 25, made off just 26 balls with one six and four fours.
But his side were now 37 for one off eight overs after England had captured Sri Lanka's prize wicket.
New batsman Kumar Sangakkara, on 17, chipped a full toss from Mahmood to Paul Collingwood at point and Sri Lanka were 69 for two.
Tharanga, who had been patient, went down the pitch to loft left-arm spinner Monty Panesar for a first four in 79 balls.
After completing a 91-ball fifty, Tharanga looked to up the tempo with a dashing late cut four off Flintoff.
But going for a pull against England's star all-rounder, Tharanga's 103-ball innings when he top-edged to Kevin Pietersen, running round from mid-on to leave Sri Lanka 160 for three in the 35th over.
Jayawardene, fresh from his 82 against West Indies, was in composed form during a 61-ball stay featuring four fours.
But going for a big shot against medium-pacer Paul Collingwood, he holed out to Ed Joyce on the mid-wicket boundary.
Tillakaratne Dilshan was the brilliantly run out by Ian Bell at mid-off for five after the fielder half-stopped the ball and got up to throw down the stumps at the bowler's end.
Sri Lanka's late collapse continued when Flintoff bowled Chamara Silva for 23 with a full-length delivery.
And when he had Chaminda Vaas superbly caught by a diving Collingwood at backward point. Mahmood struck twice late on before the innings ended with a last ball run-out.
Sri Lanka 235 all out in 50 overs (Tharanga 62, Jayawardene 56, Jayasuriya 25, C Silva 24; Mahmood 4 for 50, Flintoff 3 for 35, Collingwood 1 for 44) Vs England (yet to bat).
ThatsCricket (with inputs from AFP)