Two-time champion Almagro had more of a struggle, coming from a set down to defeat Benoit Paire of France 3-6, 6-3, 6-4.
The second-seeded Spaniard lost serve twice to drop the first set, but settled and took control of the match to win in it in more than two hours at The Fairmont Acapulco Princess.
Frenchman Jeremy Chardy also scraped into the last eight, turning around the match after a poor first set to win a tight second-set tiebreaker then rolling over fourth-seeded Kei Nishikori of Japan in the final frame to win 1-6, 7-6 (8), 6-0.
In the women's tournament, the three top-seeded Italians all progressed.
Pennetta's quarterfinal opponent will be qualifier Mariana Duque-Marino of Colombia, who upset sixth-seeded Johanna Larsson of Sweden 4-6, 6-1, 6-3.
The other top Italian contender, third-seeded Sara Errani, cruised past Romanian qualifier Edina Gallovits-Hall 6-4, 6-1 and will next take on lucky loser Estrella Cabeza Candela of Spain, who downed Hungarian Melinda Czink 6-4, 7-6 (5).
The No. 4-seeded Irina-Camelia Begu of Romania ousted Anna Tatishvili of Georgia 6-3, 6-1, setting up a third-round clash with Slovakia's Magdalena Rybarikova, who prevailed over local wild card Ximena Hermoso 6-3, 3-6, 6-3.