We present two types of algorithms that practically solve S-unit and
Mordell equations. The first type builds on Cremona's algorithm, and
the second one combines explicit height bounds with enumeration
algorithms. In particular we refine de Weger's sieve for S-unit
equations and solve a large class of such. Additionally our new
results on Mordell's equation implies an improved version of a theorem
of Coates on the difference of coprime squares and cubes. Our results
and algorithms crucially rely on a method of Faltings (Arakelov,
Parsin, Szpiro) combined with the Shimura-Taniyama conjecture, and
they do not use the theory of logarithmic forms.