Jonathan Pitroipa headed the winner in extra-time to send Burkina Faso into the Africa Cup of Nations semi-finals.
Togo's Floyd Ayite missed the only chance of the first half when the ball bobbled up off the woeful Nelspruit pitch and he scuffed his shot.
After the break, Togo skipper Emmanuel Adebayor had a header cleared off the line by left-back Mady Panandetiguiri.
In a game of few chances, added time was needed and with 15 minutes left Pitroipa nodded in from a corner.
Togo keeper Kossi Agassa will look back on the goal that knocked his side out with personal regret. He had come off his goal-line to cut out a cross and left a huge gap for Pitroipa to direct the ball in off the underside of the bar.
It was always likely that a mistake would cost someone dear as a combination of the abysmal pitch, negative tactics and a lack of genuine quality made for a poor game.
And so it proved as the Burkinabe, who tried to play the better football, profited to reach the semi-finals for only the second time in their history.
Burkina Faso came into the match in form, having finished top of group C - ahead of
Nigeria, who reached the semi-finals earlier on Sunday with a shock victory over tournament favourites Ivory Coast.
And they looked the more cohesive unit in the opening 45 minutes, enjoying the majority of possession and territory as Togo sat back in what is becoming a familiar defensive approach from them.
Aiming to repeat history
Burkina Faso have been in the semi-finals once before, when they hosted the tournament in 1998 and finished in fourth place
But they would have gone behind if Togo had finished off a nice move that created a chance for Floyd Ayite, who was unable to connect cleanly with his shot from inside the box as the ball took a bobble off the almost unplayable surface.
Bookings became more frequent than shots as the half wore on and the game became increasingly physical and scrappy.
And when the Burkinabe managed to put a few passes together they were unable to supply the finish as Issoef Ouattara headed wide and Wilfried Sanou mistimed a shot.
They would have had a clean shot at goal if the referee had given a penalty when Vincent Bossou kicked Pitroipa's foot after the Burkinabe player had reached the ball first.
Instead it was the Togolese who almost broke the deadlock after the break when Adebayor's header was superbly hooked off the line by left-back Panandetiguiri.
Togo began to look dangerous and defender Bossou headed wide from a corner after outmuscling his marker and soon after Prince Segbefia smashed a shot over the bar having been gifted the chance after a mistake by Burkina Faso defender Bakary Kone.
Burkina Faso responded through substitute Prejuce Nakoulma, who was involved in two incidents in quick succession, first when he fell in the box under a challenge from Bossou and then when he crossed for Pitroipa, who could not react quickly enough to turn the ball in at the near post.
As they came forward, they left gaps at the back and Togo skipper Adebayor beat two defenders to earn a shot at goal, but his effort was saved by the legs of Daouda Diakite, who spread himself well.
Nakoulma, making his presence felt after coming off the bench, hit back for the Burkinabe and wriggled through the Togo defence but could not get a shot on target.
With neither side able to make the breakthrough, the game entered extra-time - and there was a looming sense that it could go all the way to penalties.
Burkina Faso substitute Abdou Traore tried to prevent that when he tested keeper Agassa from a tight angle.
And then came the breakthrough right at the end of the first half of extra-time Charles Kabora sent a corner to the near post where Pitroipa headed in off the underside of the bar, with keeper Agassa well out of position.
Togo appeared to have little in reserve and the Burkinabe comfortably held on to go through to a last-four match against Ghana on Wednesday.
Burkina Faso manager Paul Put:
"It's a dream come true. We were just happy to get to the last eight - that's a result for Burkina Faso.
"But I told my players we have a chance to go even further and qualify for the semis and I'm so happy they did it."
- 01 Diakite
- 04 Kone
- 08 P Koulibaly
- 12 Panandetiguiri
- 05 Koffi
- 06 Kone
- 11 Pitroipa (Rouamba - 109' )
- 13 Ouattara Booked (Nakoulma - 66' )
- 18 Kabore Booked
- 20 Sanou (Traore - 96' )
- 09 Dagano
- 16 Soulama
- 23 Sanou
- 03 H Traore
- 07 Rouamba
- 14 Balima
- 17 Rabo
- 21 Traore
- 22 Nakoulma
- 02 Dah
- 15 Bance
- 19 PP Koulibaly
- 16 Agassa
- 02 Nibombe
- 05 Akakpo (Wome - 106' )
- 06 Mamah Booked
- 09 Vincent Bossou Booked
- 21 Dakonam Djene
- 08 Amewou (Salifou - 116' )
- 10 Ayite Booked (Segbefia - 67' )
- 15 Romao Booked
- 04 Adebayor Booked
- 17 Gakpe Booked
- 01 Atsu
- 23 Tchagouni
- 13 Ouro-Akoriko
- 20 Kokou
- 03 Wome
- 07 Salifou
- 12 Mani
- 14 Segbefia
- 19 Ametepe
- 11 Ayite
- 18 Fessou
- 22 Damessi
Ref: Badara Diatta