The Australian's best lap of the day, a a 1:42.719s, was set in the afternoon session as he ended up 1.033s off Daruvala's pace.
The Indian driver pipped Piastri's Russian team-mate Robert Shwartzman by just 0.167s as the day closed, with Dan Ticktum of the United Kingdom finishing third overall.
After ART Grand Prix duo Christian Lundgaard and Theo Pourchaire set the early running, Campos' Ralph Boschung topped the morning rounds with a 1:42.244s, 0.027s ahead of Daruvala.
Hitech's Liam Lawson lapped less than a tenth off the quickest time for P3, while UNI-Virtuosi's Guanyu Zhou clocked in the most laps of the morning with 53.
Prema sent Shwartzman and Piastri out after the break on fresh rubber, and the pair set the pace early in the session.
UNI-Virtuosi's Felipe Drugovich went five tenths quicker, before Daruvala once again led the way as the afternoon drew to a close.
Shwartzman hit the front with 20 minutes remaining, but Daruvala's 1:41.686s kept the Indian atop the tree for the second day in succession.
Boschung's morning lap was good enough to keep the Swiss driver sixth overall ahead of Louis Deletraz (MP Motorsport).
Charouz pairing David Beckmann and Guilherme Samaia were eighth and ninth, with Trident's Clement Novalak completing the top 10.
The afternoon session was halted twice in the closing stages, with HWA's Matteo Nannini stopping at Turn 8 before Pourchaire hit the barriers at the same corner.
The field will return to the Sakhir circuit for Day 3 on Thursday at 0900 local time (1700 AEDT).