If you are really set on seeing both Balestrand and the Naeroyfjord, it is definitely doable in just two days. It would get you into Bergen late in the evening (about 9:00 PM), but it would allow you to really maximize your fjord visit and alleviate your fears of missing out on either Balestrand or a true fjord experience. This may be your best option to get the best of both worlds.
Here's an itinerary that you could follow. This is exactly the itinerary we used last summer (minus the extra day in Balestrand in the middle), so I can answer any specific questions you have.
Day 1
- Trains/boats from Oslo to Flam to Balestrand (will likely arrive around 16:55 in the evening)
Day 2
(I'm pulling these times from our itinerary last year, so you will want to reconfirm, but I imagine the same general schedule should still hold true).
- 11:50: Depart Balestrand on Express Boat back to Flam
- 13:25: Arrive Flam
- 14:00: Depart Flam on boat for Naeroyfjord/Gudvangen
- 15:30: Arrive Gudvangen, where there will be buses waiting to take you to Voss pretty much immediately
- 15:40: Depart Gudvangen on bus
- 16:55: Arrive at Voss train station
- 19:41: Depart on train from Voss to Bergen
- 21:08: Arrive in Bergen
Day 2 requires a little bit of backtracking, and will be a somewhat long day, but you can relax on the Express Boat back to Flam since you've already seen that route, and it allows you to see the Naeroyfjord without sacrificing Balestrand.
While this gets you into Bergen fairly late, I really don't think you'll need to be up real early the next day to see everything in Bergen. We liked the city, but felt like we had seen everything we wanted to by mid-afternoon of our day there. However, it allowed us to unwind and relax after a long travel day through the fjords the day before.