McCain, in Miami on Tuesday, criticised Obama's proposals and vowed to maintain the US economic embargo against Cuba until it releases political prisoners and schedules free elections.
"John McCain has been going around the country talking about how much I want to meet with Raul Castro, as if I'm looking for a social gathering," Obama said, referring to the new Cuban leader, who formally replaced Fidel Castro as president in February.
"That's never what I have said, and John McCain knows it."
Both candidates are courting Florida's influential Cuban-American community in a state that will be key in November's general election.
Obama said he would maintain the Cuban embargo but would offer to start normalising relations with the communist country if it released all political prisoners.
But the McCain campaign accused him of changing his view on the issue.
"By changing his position in front of Cuban-Americans to support the embargo that he used to oppose, Barack Obama is engaging in the same political expediency that he railed against in his speech," Tucker Bounds, a McCain spokesman, said.
"This same tired type of political flexibility shows Barack Obama's weak leadership on an important issue."
Obama, who used Spanish words and phrases in his speech, also called for a regional energy partnership with Latin American nations to develop alternative sources of fuel and for more diplomatic efforts to promote democracy.