There is only one daily train connection to Prague and one to Olomouc from Zlín, however, the best option is to take to take the train to Otrokovice from where there are frequent (every 5-10 minutes) trolleybus connections to Zlín center. There is also connecting train from Otrokovice to Zlín going almost every hour. There are train connections from Otrokovice to Prague, Brno, Olomouc, Ostrava every 2-3 hours, and few direct trains to Vienna, Bratislava, Budapest and Warszawa per day. All these connections are provided by České dráhy. It is possible to buy all inland train tickets online 
An alternative option for travelers from Prague is to take the luxury train of company RegioJet till Olomouc and then change to the bus from Olomouc to Zlín. Price of this connection is almost the same as for trains of state-owned company České dráhy however you get free coffee in the train and bus + there is WiFi connection. It is possible to buy a joined ticket for bus+train connection of this company both in the offices of RegioJet or online 
There are no international buses stopping Zlín. If you want to get to Zlín from some other Czech city where train connection is not very convenient, you can search for connection and buy the bus ticket online here 
There are 13 bus lines and 13 trolleybus lines in Zlín, however, some of those lines covers also Otrokovice town. Here you can search connections within Zlín and Otrokovice . Bus stop located next to Otrokovice train station is called "Otrokovice,žel.st.", main stop in the city center is "Nám.Práce"
Once you find the connection you need in the web page linked above, it will show you how much the ticket will cost. Be sure you buy a ticket before you enter the bus and stamp it on the bus. One ticket costs 12 - 18 kč., depends on how long ride you need. You can buy also one ticket for 24 hours (70kč.) or 7 days (180kč).
Spa town Luhačovice close to Zlín offer wide range of luxury hotels.
You can find bus connections from Zlín to all places listed above here []