Valtteri Bottas will start from the front at Silverstone despite Hamilton's last-gasp effort to usurp his Mercedes team-mate.
Pierre Gasly starts fifth with Sebastian Vettel a disappointing sixth.
"It wasn't good enough," said Hamilton, 34, in front of an enormous but largely flat British crowd.
"We worked hard but it got away from us," he said.
"I had that mistake on the first lap and the second one wasn't that great.
"Tomorrow is a long race, but we have got a great crowd here so hopefully I can do something.
"It is the best grand prix of the whole year. Without people like this to fill it up, and bring energy it would be nothing, so that is why we have got the best fans in England."
Bottas added: "It feels good. It has been close all weekend with Lewis and it was great to get in a good lap and get pole."
Hamilton was bidding to secure his fifth consecutive pole at the Northamptonshire circuit, but the world champion made a critical error on his first run in the shootout for pole.
The Briton wobbled through Brooklands, temporarily losing control of his Mercedes, to leave him well behind Bottas ahead of the final runs.
Hamilton attempted to make amends for his error, but despite improving on his time it would prove no match for the Finn - Bottas ending Hamilton's streak of four poles.