Try the Holiday Inn, port of Miami. You can get a room overlooking the port to watch your ship come in. Just walk across the road to the Bayside Marketplace, tons of restaurant, live music all set around a marina .
Bayside Marketplace - Outdoor Shopping Mall in Downtown Miami, Florida Featuring Top Dining & Entertainment
From the airport we paid $24 for a taxi and in the morning we paid $8 over to the cruise terminal.
If you want 4* then the Intercontinental Hotel on Chopin place is also a nice choice, walk along a park for 5 minutes to the Bayside, but not sure I'd want to walk back through that park late at night.