Zlatko Dalic's men will be playing in their fifth World Cup in Russia next year, having only once failed to qualify in 2010.
"We had a good match in Zagreb but it was difficult here. If we had won 1-0 (in the first leg) it would have been very difficult tonight," said Croatia coach Dalic, who only took over from the sacked Ante Cacic last month.
"We are a very good team and it would not be just for us not to go to Russia."
A strong defensive performance, especially in the second half, was enough for Croatia to leave the Karaisiakis Stadium with a comfortable victory over the two legs after winning 4-1 on Thursday.
"It was a tough match for us. We did not play at our level, but more important is the result," said Real Madrid midfielder Luka Modric.
"Greece played a good game tonight, it pushed us, but there was no serious opportunity (of a comeback)."
Greece coach Michael Skibbe dropped half of his players from the disastrous first-leg showing in Zagreb, and the return of Roma defender Kostas Manolas kept Croatia striker Nikola Kalinic in check.
"Unfortunately we had a very bad performance in Zagreb three days ago and we paid for it," said German Skibbe.
"We then made too many mistakes. Tonight we were excellent and Croatia were not good. The previous match happened the other way around."
For the first 30 minutes Greece were in control, but despite two good shots from Borussia Dortmund defender Sokratis Papastathopoulos and AEK Athens forward Anastasios Bakasetas, the home team failed to get the much-needed early goal.
Greece came close to scoring four minutes before half-time when a cross from Kostas Mitroglou found midfielder Zeca, who headed the ball in front of the Croatian goalmouth, only for goalkeeper Danijel Subasic to tip the ball away with Panagiotis Retsos ready to head in.
But the visitors nearly put the tie to bed when a left-footed blast by Inter Milan winger Ivan Perisic hit the post in the 43rd minute, after Barcelona midfielder Ivan Rakitic had earlier curled a free-kick over the crossbar.
Greece continued to enjoy more of the ball in the second period but when it came to finishing off an attack, either a pass would go astray or a defender would step in.
A shot on the turn by Mitroglou from just outside the penalty area just missed the post with an outstretched Subasic unable to reach it.
Greece did put the ball in the net in the 79th minute, but substitute Dimitris Pelkas was correctly called offside.
Bologna defender Vasilis Torosidis' shot was blocked by Subasic with just three minutes left, denying Greece even a consolation strike.