The Lombardy rivals have now won just two of their last 13 games between them and neither side really got going in a low-quality contest at the Gewiss Stadium.
Martinez guided Ashley Young's cross away from Marco Sportiello just before the hour mark to open the scoring for Inter, who had Alexis Sanchez back in their line-up and brought on Romelu Lukaku in the second half.
Arturo Vidal squandered a glorious chance to double the visitors' tally and that proved a costly miss as Miranchuk found a late equaliser, leaving Inter sixth in the table and a point below their opponents.
Hans Hateboer had a header routinely kept out by Samir Handanovic and Ruslan Malinovskiy fired over from a good position in a first half of few chances.
The closest Inter came to a breakthrough before half-time was through Vidal's looping header that dipped too late and ended over the crossbar.
Yet it was the visitors who took the lead 58 minutes in thanks to Martinez's glanced header after being picked out by Young eight yards from goal.
Vidal should have doubled Inter's lead seven minutes later but he was denied from a one-on-one by Sportiello, who also kept out Nicolo Barella's follow-up attempt.
Inter have struggled for clean sheets this season and they were unable to hold on to their lead here as substitute Miranchuk controlled the ball and drilled into the bottom corner.
That made Miranchuk the first Russian to score in Serie A since Viktor Boudianski for Ascoli against Palermo in May 2007, and Atalanta could easily have snatched the win, only for Luis Muriel to plant a diving header wide from six yards.
Both sides had late penalty shouts turned down, with Lukaku going to ground moments after Danilo D'Ambrosio got away with a high boot in the other box, as the contest finished all square.
What does it mean? Inter still stuttering
After going three games without a win in all competitions prior to this, Antonio Conte acknowledged the importance of his Inter side picking up a victory at the Gewiss Stadium.
Atalanta shipped five against Liverpool at this ground in midweek and were there for the taking, especially after Martinez had given the visitors a goal to build on.
But Inter were once again caught out at the back, conceding for the 16th time in 10 matches. Going further back, it is now one win in eight and Conte will surely be feeling the heat over the two-week break.
Martinez makes his mark
With Lukaku still not fit enough to return to the starting XI, it was left to Martinez to lead the line alongside Sanchez, who is also still attempting to regain full fitness.
Martinez scored his fifth goal of the campaign from one of his game-high five shots on target - Malinovskiy was next best with three - and it was only after he went off that Inter conceded.
Inter's lax defending
Miranchuk was picked out on the edge of the Inter box, allowed to swivel, knock the ball out of his feet and then fire away from Handanovic into the bottom-right corner, almost in one swift movement.
As good as the goal was - his first in Serie A - he should never have been allowed to get the shot away. Stefan de Vrij could not get near him and was the only outfield Inter player who took part in the full match and did not attempt a tackle.
Key Opta stats
- The last time Inter won only three of their first 10 matches of the season was back in 2016-17. Only four times have they won fewer times, most recently in 1970-71.
- Martinez's last headed goal in Serie A also came from a Young assist (in January against Cagliari).
- Atalanta have conceded at least one goal in 10 straight league games - their longest streak of games without a clean sheet since August 2015.
- Inter have scored four headed goals in this Serie A season, which is more than any other team.
- Conte's side did not have a shot on target in the first half for the second time this season in Serie A.
Atalanta travel to Spezia on their return to Serie A action, while Inter resume duties after the international break with a home match against Torino.