Actually, recent scholarship suggests that Columbus did in fact know that he was no where near India. He was a Cartographer by trade, and well versed in navigation. It is highly unlikely that he could have made so drastic a mistake. The idea that it all happened completely by accident was the theory advanced sixty years ago by Samuel Eliot Morrison. That theory has now been discounted.
Columbus was not only trained in map making, he was trained in Latin, so he was no-one's fool. He did, however, make extravagant promises to his investors (only his flag ship, the Santa Maria was funded by by Ferdinand and Isabella; he raised the money for the other two ships from private investors in Palos, Spain). He had promised to return gold, (not spices) from the Orient. He sold the venture to his investors by using information on the size of a degree of the earth and the size of the Eurasian landmass which he knew to be inaccurate, but which he used to make the venture seem easier than it really was. It is also a known fact that he deliberately faked his captain's logs to keep his crew deceived. He could not tell those who had invested large sums in his venture that he had failed; so he insisted that he had landed off the coast of China in the Indies, hence the whole Indian business. It is noteworthy that Columbus made four more voyages, all to the same area. If he was capable of that precise navigation, he was capable of knowing that he was not in Asia.
Amerigo Vespucci disproved nothing; in fact he helped Columbus raise funds for his second and third voyages. He was the first known European to land on the coast of South America. Later, a German cartographer, Martin Walseemueller, believed that Amerigo deserved the credit for being the first to land here, since he had landed on the mainland and Columbus only on islands in the Caribbean. Hence, he wrote "America" on his maps, and the name stuck.