For the second time in three races Alonso led heading into the final few laps, only to find himself overhauled.
In Canada, with six laps remaining, the Spaniard slipped from leader to fourth come the chequered flag due to badly degrading tyres.
An emotional winner in Valencia a fortnight ago, Alonso appeared poised for back-to-back victories at Silverstone on Sunday, but on lap 48 of 52 he had no answer to Mark Webber's pace and finished runner-up.
The result allowed Webber to cut Alonso's lead at the top of the championship to 13 points, but the Ferrari driver was still smiling.
"When you lead for almost an entire race, but are overtaken just a few laps from the finish, it does leave something of a bitter taste in the mouth," said Alonso.
"But as far as I'm leading the championship, I'm more happy than worried. If Mark was leading I would be worried about losing another seven points.
"But the weekend in general was fantastic for us. After my win in Valencia we didn't know how the car would perform at such a very different circuit as Silverstone.
"We then had a very difficult qualifying, but we survived, taking pole position.
"In the race the car performed well, we avoided any contact, any accidents that might have happened at the start or in some other battles.
"In the end we picked up more points than we probably expected.
"If you had told me on Thursday I'd be going home with 18 points to my name, I would have signed for that right away."
Alonso remains the only driver to have finished every race in the points, notably with four podiums in the last five grands prix.
With team-mate Felipe Massa also showing signs of recovery, the Brazilian finishing fourth for his best result since the Korean GP in October 2010, Ferrari's revival continues apace after their woes at the start of the year.
Alonso added: "I'm very proud of the Ferrari recovery in the last few weeks.
"We have fought for victory in the last three or four races, and although there is still a lot to do, as we have said several times, we are on the right road."