Ahead of the first F1 race in Portugal for 24 years this weekend, opening practice saw a number of drivers report struggles with a lack of grip at the Autodromo Internacional Algarve.
But Bottas was able to set the pace for Mercedes in FP1, heading up a 1-2 finish for the German team ahead of Lewis Hamilton in the sister W11 car.
Bottas had sat third on the timesheets after the initial runs on the hard compound tyre early in the session as Hamilton led the way, but was able to leapfrog his teammate during the medium-compound runs that followed.
After initially sitting 0.143s off Hamilton's time with his first push lap on the mediums, Bottas was able to set a time of 1m18.410s with his second effort that was good enough to take top spot at the end of the session.
Hamilton was left to settle for second place, sitting 0.339 seconds behind Bottas in the final classification. He reported graining on his tyres during some late laps in FP1, echoing messages from a number of drivers.
Max Verstappen led Red Bull to third despite suffering an early spin in the green conditions and having a laptime deleted after confusion over the track limit rules at Turn 1.
The Dutchman ultimately put in a lap time that was seven tenths of a second slower than Bottas' benchmark, albeit set on the hard compound tyre.
Ferrari's Charles Leclerc also opted to focus on hard tyre running throughout opening practice at Portimao, and had been running second after the opening runs before ending the session fourth fastest. Leclerc also had a brief spin at Turn 14, but was able to recover easily.
Alexander Albon took fifth for Red Bull despite reporting instability with his RB16 car on low speed corners. Both Red Bulls were spotted to emit puffs of smoke at the rear of the car on occasion midway through the session.
Carlos Sainz finished sixth for McLaren as the team began to evaluate its "slight hybrid" update package following its struggles at the Nurburgring. The Spaniard finished ahead of Sergio Perez and Kimi Raikkonen, who followed in seventh and eighth place respectively.
Daniel Ricciardo ended the session ninth for Renault ahead of Pierre Gasly, who had his running cut short after being asked to pit due to "an issue with the car" with 20 minutes left in the session.
Sebastian Vettel took 11th for Ferrari ahead of Lando Norris and Daniil Kvyat, the latter suffering a spin late on for AlphaTauri at Turn 3. Haas driver Kevin Magnussen finished 14th ahead of Lance Stroll, who made his return to the Racing Point cockpit following illness, and finished 15th.
Antonio Giovinazzi lapped over a second slower than Raikkonen in the second Alfa Romeo car, leaving him 16th ahead of Romain Grosjean.
George Russell led Williams' charge in FP1 as he finished 18th, with teammate Nicholas Latifi propping up the timesheets in P20. The duo were split by Renault's Esteban Ocon, who was told to pit after the chequered flag without changing gear due to a problem with the car.