Stepanek, at 38 the oldest player to reach an ATP quarter-final since Jimmy Connors in 1995, was no match for a clinical Djokovic, who made light of the breezy conditions with a straightforward 6-3 6-3 victory.
The 37-year-old Karlovic, the oldest top-20 player since Ken Rosewall in 1978, lost 6-2 7-5 to Spain's Fernando Verdasco.
Verdasco will face Djokovic for a place in the final.
Briton Murray beat Almagro for the fifth time in six matches but was never comfortable against the hard-hitting Spaniard before posting a 7-6(4) 7-5 victory.
Almagro threw everything at the 29-year-old, striking 32 winners to his opponent's 24, but Murray's defensive skills proved decisive in the end as he wore down the world number 44.
Murray will play Tomas Berdych, victor over France's Jo-Wilfried Tsonga 7-5 6-3, in Friday's semi-finals.
(Reporting by Martyn Herman; Editing by Ian Chadband)
