The major weaknesses of the Spanish during the Spanish-American War were that they had fewer soldiers and a weaker navy.
As an example of this, the Spanish navy had only 6 ships to defend Cuba. It also had very few ships in the Philippines. This was because Spain chose to keep its ships at home to protect the Spanish homeland. This allowed the US to easily destroy the Spanish navy both in Cuba and at Manila Bay. This also meant that the US could prevent supplies from reaching Cuba.
Partly because of this, and partly because Spain was not very wealthy, the Spanish had relatively few soldiers, especially in Cuba. This meant that American forces, even though they were fairly amateurish and very disorganized, could easily defeat the Spanish army in Cuba.