Cornwallis was defeated at Yorktown because:

his troops were wounded and sick

French and American ships kept relief forces from arriving

Greene had followed him from North Carolina

his position near Chesapeake Bay was hard to defend