There are 2-hourly EC trains from Prague to Budapest, via Brno, Břeclav and Bratislava (0750, 0950 etc), taking 6.5 hours.
They alternate with the Prague-Vienna-Graz Railjet service in the other hours as far as Břeclav.
The route is quite interesting and the trains are a mix of stock and locos, with a good restaurant car.
This site has the normal train composition:
https://www.vagonweb.cz/razeni/ and also shows the sleeper times.
In Budapest, the day trains use Nyugati station (the "proper" terminus for the route), while the sleeper still uses Keleti and circles Budapest to get there.
Booking via the ČD site is quite easy and reliable:
https://www.cd.cz/en/
Coming the other way the MAV-START site is less user friendly but works if you are patient.
https://www.mavcsoport.hu/en