McLaren headed up an early 1-2 in the opening minutes of the session, with Norris leading teammate Sainz with a time of 1:29.236, four-tenths faster than that of Sainz.
Vettel looked more comfortable after his engine failure during yesterday's second free practice, while Racing Point looked quick on the soft compound tyres, Lance Stroll setting a time of 1:28.202 to go quickest.
Teammate Nico Hulkenberg, once again filling in for Sergio Perez, found himself third before Mercedes' Bottas went fastest by half a second with a time of 1:27.509.
A lock-up on his first lap left Hamilton trailing his teammate by two tenths to his teammate, but he was able to close the deficit down to just two-hundredths of a second by the end of the lap.
The wind played a factor for the drivers during the session, with Norris complaining of car snapping in the corners, while Williams' George Russell went wide at Stowe after losing the car on the entry to the corner.
Red Bull was hoping to take to fight to Mercedes with Verstappen just two tenths behind the pair, as Alexander Albon was further down in seventh.
It was Hamilton that ended the session fastest, by over a second to Bottas by the time the chequered flag fell.
Bahrain International Circuit - Winter testing