Who defeated the Roman Empire?
The Romans technically defeated themselves by growing too quickly and outspending their ability to raise money by fighting war after war after war. If you are asking who beat them in battle to end the Empire, that would be various Germanic tribes such as the Visigoths and the Oligoths. The Germanic tribes and the remnants of the Roman Empire would eventually combine to form the Spanish, the French, the Portugese, the Romanians, and the Italians.
You asked ‘WHO’. Hanibal defeated the Roman Empire, but he didn’t know what to do with his victory. Hence, he sat there are did nothing and Rome attacked Carthage. Shame that, because if Carthage had have backed Hanibal like they should have, Rome would have been eradicated centuries earlier. Attila The Hun finally gave them the vital death blows, but only by learning the Roman ways of doing battle.