Celtic saw off Kilmarnock’s stubborn resistance to reach their sixth Viaplay Cup final in seven seasons.
Maeda’s faint touch from Kyle Lafferty’s attempted clearance flew past Sam Walker to give holders Celtic the lead in the first half at Hampden.
The Japan forward had another goal ruled out for an offside, as did compatriot Reo Hatate.
Giorgos Giakoumakis settled the tie in stoppage time, moments after appearing to foul Joe Wright in the other box.
Kilmarnock will feel aggrieved that no penalty was given, as they played their part in an absorbing semi-final.
Danny Armstrong was the outstanding player for the Ayrshire club and had opportunities to level, including a close-range effort on the stretch that went just wide.
But Celtic saw out the victory and set up a meeting with either Rangers or Aberdeen – who play in Sunday’s semi-final – on 26 February at the national stadium.
Cup football is all about win or bust, drama and the one-off nature of the occasion. Win you progress, lose you are out.
Despite that simplicity and the opportunity available, the underdog often fails to muster the belief or gameplan to deliver a true contest. But amid a pulsating atmosphere and utterly horrible conditions at Hampden, Kilmarnock did just that.
A change of shape and intent to engage Celtic further up the pitch nearly paid off after 30 seconds.
Armstrong surged down the right to expose space vacated by Alexandro Bernabei. The winger cut back and sent a dangerous low ball across the six-yard box. Had Kyle Vassell gambled a second earlier, it was a certain goal. Unfortunately for Kilmarnock, he didn’t and the chance was lost.
Armstrong started like a man possessed as Derek McInnes’ side harassed and harried but crucially maintained a threat.
Slackness from Carl Starfelt was seized on by Rory McKenzie. He surged forward and unleashed a low drive towards the corner – only for Joe Hart to get down and tip round a post.
Celtic began to exert a grip on possession but failed to trouble Walker’s goal, until Lafferty’s attempted clearance from a free-kick struck the onrushing Maeda and diverted into the top corner.
It was a lucky break for Celtic, and the expectation was they would canter on.
But Kilmarnock immediately threatened through Wright’s header, then Liam Donnelly sent another looping header over. If the goal was a blow, Kilmarnock’s heads were not for bowing.
Celtic regrouped at half-time and seemed to exert more tempo to add to their possession. Hatate thought he’d added a second but was deemed offside after the ball deflected into his path.
Maeda then produced a wonderful top-corner finish from Kyogo’s superb flick in behind, but the assist had been delivered while the forward was fractionally offside, and VAR intervened.
Josip Juranovic was then just off target as Celtic looked for their elusive second goal.
But Kilmarnock never went away. Armstrong came so close to an equaliser as he slid in at the back post, then substitute Christian Doidge diverted towards goal only for Hart to palm the ball away.
Aaron Mooy and Liel Abada went close at the other end and, as the clock ticked on, you were never quite sure Celtic were over the line.
Even in injury time, a big shout for a penalty caused panic when Giakoumakis bundled into Wright. Nothing was given, and then finally the second goal arrived.
When David Turnbull’s shot was saved, his fellow substitute Giakoumakis could not miss from close range.
Celtic got there – but were given an almighty challenge in a wonderful cup tie.
Player of the match – Daizen Maeda
Celtic get job done, Killie outstanding – analysis
If McInnes can instil this type of performance in his side consistently, then they will quickly rise up from 11th in the league table. So much of what they produced was spot on, other than the most crucial bit, finding the back of the net.
They had chances, good ones, but just couldn’t convert. A desire to engage Celtic further up the pitch at times, and give their opponents no time to settle into their rhythm, worked well. Their performance was outstanding.
Celtic will feel they are deservedly through having had two goals, rightly, ruled out for offside and numerous chances to put the tie to bed earlier than they did.
It was clear, though, they were below their usual level. Whether that was down to conditions, Kilmarnock, or something else is not clear.
However, they did what champions do. Progressed to another cup final, and are within touching distance of winning the trophy for the sixth time in seven seasons.
Celtic return to league business as they hosts St Mirren on Wednesday (19:45 GMT), while Kilmarnock face Rangers at Rugby Park (20:00).
- 13MooySubstituted forTurnbullat 90+3′minutes
- 41HatateSubstituted forO’Rileyat 74′minutes
- 17Neves FilipeSubstituted forAbadaat 73′minutes
- 8FuruhashiSubstituted forGiakoumakisat 74′minutesBooked at 90mins
- 38MaedaSubstituted forForrestat 81′minutes
- 2MayoSubstituted forAlebiosuat 87′minutes
- 11ArmstrongBooked at 90mins
- 22DonnellySubstituted forPolworthat 45′minutes
- 7McKenzieSubstituted forJonesat 87′minutes
- 28LaffertySubstituted forDoidgeat 45′minutes
- 23VassellSubstituted forRobinsonat 73′minutes
- William Collum
Match ends, Celtic 2, Kilmarnock 0.
Second Half ends, Celtic 2, Kilmarnock 0.
Giorgos Giakoumakis (Celtic) is shown the yellow card for excessive celebration.
Goal! Celtic 2, Kilmarnock 0. Giorgos Giakoumakis (Celtic) left footed shot from very close range to the centre of the goal.
Attempt saved. David Turnbull (Celtic) left footed shot from the left side of the box is saved in the centre of the goal. Assisted by James Forrest.
Daniel Armstrong (Kilmarnock) is shown the yellow card for a bad foul.
Alexandro Bernabei (Celtic) wins a free kick in the attacking half.
Foul by Daniel Armstrong (Kilmarnock).
Substitution, Celtic. David Turnbull replaces Aaron Mooy.
Offside, Kilmarnock. Ash Taylor tries a through ball, but Jordan Jones is caught offside.
Offside, Celtic. Aaron Mooy tries a through ball, but Liel Abada is caught offside.
Substitution, Kilmarnock. Ryan Alebiosu replaces Lewis Mayo.
Substitution, Kilmarnock. Jordan Jones replaces Rory McKenzie.
Attempt missed. Liel Abada (Celtic) header from the centre of the box misses to the left. Assisted by Alexandro Bernabei.
Attempt blocked. James Forrest (Celtic) right footed shot from the left side of the box is blocked. Assisted by Aaron Mooy.
Corner, Celtic. Conceded by Sam Walker.
Attempt saved. Aaron Mooy (Celtic) left footed shot from outside the box is saved in the centre of the goal. Assisted by James Forrest.
Substitution, Celtic. James Forrest replaces Daizen Maeda.
Offside, Kilmarnock. Alan Power tries a through ball, but Christian Doidge is caught offside.
Matt O’Riley (Celtic) wins a free kick in the defensive half.