Hardy put the O's ahead to stay with a first-inning solo homer off Josh Tomlin (5-7) and then made it 3-0 with a two-run single in the seventh.
But it was Wilson Betemit's bases-empty clout for a 4-0 Baltimore lead in the eighth that turned out to be the game-winner as the Tribe rallied for three runs in the bottom of the ninth.
Cleveland made it 4-3 when Shelley Duncan doubled off closer Jim Johnson and pinch-hitter Travis Hafner chased him home with a run-scoring hit. But Johnson closed the door after that, picking up his MLB-best 30th save.
The victory was the fifth straight for Baltimore.
Santana finished 3-for-4 with two RBI for Cleveland.