The Finn hit the front early and was never deposed, as a qualifying simulation on Pirelli's supersoft tyre yielded a 1m 23.063s - which left him almost half a second clear of the chasing pack.
"It was a really good day and a great way to finish the test," Bottas said. "One of the main points we have learnt is that the FW37 is very reliable. The car we are taking to Melbourne is very competitive and should make for an interesting start to the season."
Sebastian Vettel was second fastest for Ferrari, while Sauber's Felipe Nasr was the last man to get within one second of Bottas's benchmark in third. Like Bottas, Vettel and Nasr set their best times in morning runs on the supersoft.
Toro Rosso's Max Verstappen improved several times in the afternoon, eventually slotting into fourth ahead of Red Bull's Daniel Ricciardo. The Australian also made gains in the afternoon, having missed much of the morning with an ERS problem.
McLaren's day was similarly disrupted by technical gremlins. Jenson Button was only able to get out for two untimed laps in the morning, as a sensor problem meant the Honda power unit had to be removed. The afternoon proved slightly more productive as Button slotted into eighth, although he managed just 30 laps in total. Nasr, by comparison, was the day's busiest driver with 159 laps.
"Looking back at the last four weeks, our winter test programme has been difficult," racing director Eric Boullier admitted. "The lack of mileage means we won't be as ready as we'd have liked, but we can take away the positive that all the running and data gathering we've done have confirmed that we're achieving the targets we set ourselves.
"Even if it's likely to be a difficult start to the season, we know we can develop hard and fast, and that we'll surely unlock the huge potential that lies within the McLaren-Honda MP4-30."
Sergio Perez also broke past 100 laps in what was his first day in the delayed Force India VJM08, with the Mexican's best time - a 1m 25.113s - just enough to shade Nico Rosberg's Mercedes for sixth.
"My first day in the car has been a good one, with a very high number of laps and a good atmosphere in the team," Perez said. "It's no secret that we have some catch-up to do but I am optimistic: the team has a clear direction to work towards and we have been able to collect a large amount of data in such a short time."
Rosberg nevertheless had the honour of setting the outright best time of the test, after recording a blistering 1m 22.792s on day two.
Lotus's Pastor Maldonado rounded out the timesheet in ninth, and also triggered the red flags when he hit the barriers at Turn 4. Lotus subsequently said a "systems issue compromised Maldonado's braking".
"It was a shame to end the day early, but that was the only issue we've had like this during testing," Maldonado explained. "I was able to brake and slow, just not as much as the maximum otherwise possible. The car was not too badly damaged and I am fine, so we can look to the positive that we have a lot of information to take the car in the right direction."
Verstappen and Ricciardo also caused stoppages when they came to a halt on circuit.
Teams now have just under two weeks for final preparations ahead of the season-opening 2015 Formula 1 Rolex Australian Grand Prix. Opening practice commences at 1230 local time on Friday, March 13.
Unofficial Sunday testing times from Barcelona:
1. Valtteri Bottas, Williams, 1m 23.063s, 89 laps
2. Sebastian Vettel, Ferrari, 1m 23.469s, 129 laps
3. Felipe Nasr, Sauber, 1m 24.023s, 159 laps
4. Max Verstappen, Toro Rosso, 1m 24.527s, 85 laps
5. Daniel Ricciardo, Red Bull, 1m 24.638s, 72 laps
6. Sergio Perez, Force India, 1m 25.113s, 130 laps
7. Nico Rosberg, Mercedes, 1m 25.186s, 148 laps
8. Jenson Button, McLaren, 1m 25.327s, 30 laps
9. Pastor Maldonado, Lotus, 1m 28.272s, 36 laps