(CNN) -- Perhaps the only thing more remarkable than an umpire robbing Armando Galarraga of a perfect game is the Detroit Tigers pitcher's gracious attitude over the whole heartbreaking moment.
"We're human, we make mistakes," Galarraga told CNN Saturday just hours before the Tigers took on the Kansas City Royals. "In that moment, I was so happy about a really good game. For some reason, I don't get (angry)."
Galarraga lost his perfect game Wednesday night when umpire Jim Joyce mistakenly called what would have been the last batter safe at first base; replays showed that he was clearly out.
Galarraga showed grace after the bad call, Joyce publicly apologized, and they shared a moment Thursday, when Galarraga brought the Tigers' lineup card out to an emotional Joyce, who was umpiring at home plate.
"He apologized to me, I gave him a hug. I'm sure the guy feels 100 times worse than me," Galarraga said. "The next day we turned the page. He's a professional, I'm a professional."
Still, when the 28-year-old recalls the game to his young son one day, he will define it as a perfect game.
"I believe in my heart I had the perfect game," he said.
The incident added to what's been an unprecedented year of pitching in Major League Baseball.
If Joyce had made the right call, Galarraga would have been the third pitcher to throw a perfect game this season. However, before this season, only 18 perfect games had been thrown in the 100-year-plus history of baseball -- less than one every six years.
In order to get one, a pitcher must retire every batter he faces over nine innings, no hits, no walks, no errors behind him in the field -- 27 batters up, 27 outs. (There are also no-hitters, in which a pitcher can walk and hit batters but not give up base hits. Those are special but less rare; more than 200 have been thrown).
CNN's Matthew Mochow and Michael Squadron contributed to this report.