The Finn, 31 points behind the five-times world champion after nine races, lapped the former airfield in one minute 26.732 seconds on soft tyres.
Crowd favourite Hamilton was 0.069 slower with Ferrari’s Charles Leclerc third in 1:26.929.
“The track is less bumpy than last year which is nice; they did a good job on the asphalt and it was very enjoyable to drive,” said Bottas.
“The new surface is quite grippy, but sometimes you can lose the grip very suddenly on new Tarmac. The car seems quite well-balanced, but I think there’s still room for improvement.”
Hamilton said the wind, with gusty spells, had been tricky.
“We were up there nonetheless, and it looks like we’ll be in the fight. It’s always difficult to say after the first day though and the Ferraris are usually a little bit slower on a Friday and then pick up the pace on Saturday,” he added.
Hamilton has won four of the last five British Grands Prix and is chasing a fifth successive pole position in front of what is likely to be a record crowd and well in excess of 140,000 on Sunday.
Ferrari’s Sebastian Vettel, winner at Silverstone last year but yet to triumph in 2019, was fourth but had an off-track excursion at Becketts.
“I’m not entirely happy,” said the four-times champion. “I think it was a tricky afternoon. We tried a couple of things and maybe some of them will go back.
“I think the bigger picture today, it was OK... still Mercedes look very fast and the ones to beat. There’s more we can do definitely.”
Red Bull’s Pierre Gasly was quicker than team mate Max Verstappen in both sessions, fastest overall on an overcast and changeable morning and then fifth in the afternoon.
Bottas had been top for most of that first session, however, until Gasly went quicker right at the end when conditions improved and a light drizzle ended.
Verstappen, winner of the previous race in Austria to end Mercedes’ run of 10 successive wins, was third fastest in the morning.
Red Bull team boss Christian Horner had suggested earlier in the week that the pressure of trying to match Verstappen was getting to Gasly and he should just focus on his driving and ignore social media.
The Frenchman was lapped by his team mate in Austria and his seat has been under increasing scrutiny.
Renault raised their hopes with Nico Hulkenberg and Daniel Ricciardo seventh and eighth in the morning but they dropped down to 14th and 15th after lunch, with the Australian ahead of his German team mate.
McLaren’s Lando Norris was sixth in the second session, another impressive performance from a 19-year-old fast becoming a fan favourite.
Spanish team mate Carlos Sainz was eighth.
Romain Grosjean provided a talking point of the morning when he crashed his Haas in the pit lane, smashing the car’s front wing and leaving debris on track after exiting.
Alfa Romeo’s Kimi Raikkonen stopped on track, bringing out a red flag.