Long distance buses in India is a pretty unorganised sector. Bookings aren't usually made online! So one option would be get to Mumbai, then book a bus ticket with a local tour operator. There is one online bus ticket booking site called RedBus but they don't seem to have scheduled services running between Mumbai and Hospet. (This doesn't mean bus services don't exist, as RedBus has ticketing deals only with select bus companies.)
EDIT: So it turns out RedBus does have connections between Mumbai-Hampi, but only allows bookings 30-days in advance. If you can wait for making bookings, then this is an option.
There are two direct trains between Mumbai and Hospet:
- Yeshwantpur Garib Nawaj on Tuesdays
- Jodhpur Yeshwantpur Express on Thursdays
You can also indirectly go from Mumbai to Bangalore or Goa by train, and then further onwards by train from there to Hospet. My personal recommendation would be to get to Goa, because it's a place worth seeing itself and the Mumbai-Goa stretch of the journey on a network called Konkan Railway is one of the more scenic rail routes in India. From Goa, you can catch VSG Howrah Express that runs from Goa to Hospet every Tuesday/Thursday/Friday/Sunday.
I wouldn't advise taking a cab because the distance between Mumbai to Hampi is non-trivial.
On whether you can get a reservation or RAC booking three days in advance: As a rule of thumb, on most 'express' trains this is not possible, so don't count on it. Make the booking as early as you can. If for some reason you really have to leave it till the last minute, buy a ticket for the unreserved coaches instead (N.B. not all trains have one), although you should understand that unreserved coaches usually are filled over capacity so don't expecting more than sitting/standing space even though you have a ticket. Certainly not for the faint-hearted traveller.
When making bookings in advance, on most train booking sites such as IRCTC, Cleartrip, MakeMyTrip et al you can click on the 'check availability' link to find out whether there are seats available, and if not, what your waitlist position is. If your waitlist position is below 20 and you have a couple of weeks left for the journey, you often do end up with a reservation or RAC.
EDIT: (To answer the question on whether buses need to be reserved in advance.) If you're using an online booking system such as RedBus, then yes, it is advisable to book in advance. RedBus doesn't operate its own services, it's just a booking system used by select bus operators. If for some reason you are unable to book online, ask around at local travel agencies and you will be able to find bus tickets within a few days notice, if not same/next day.