Dhoni saw his side blown away for 152 as Stuart Broad and James Anderson - the man the tourists wanted banned for his altercation with Ravindra Jadeja at Trent Bridge - seized the momentum.
Six Indian batsmen were dismissed for ducks - equalling the Test record - as Broad claimed six for 25 and Anderson three for 46.
The hosts closed on 113 for three, Gary Ballance falling just before the close after a 77-run stand with the fluent Ian Bell (45 not out). But the plaudits must lie with England's new ball pair, who were irresistible at times.
Broad was the model of precision on a pitch that offered the kind of pace and carry he thrives on, conceding less than two an over as well as regularly picking off victims.
Anderson's figures were less spectacular but his mastery of the swinging ball was a joy to behold, and a stark reminder of why India would have been happy to see him suspended from his home Test.
India's innings, wrapped up in just under 47 overs, equated to little more than the sum of two partnerships. Dhoni was at the heart of both, the captain making partial amends with a knock that was part bloody-minded counter-attack and part hack and hope. He put on 54 with Ajinkya Rahane and 66 with Ravichandran Ashwin, the first stand stemming England's new ball charge and the second a boundary-strewn interlude just after lunch.
Aside from those fifth and seventh-wicket rallies, India were routed.
The trouble started when Gautam Gambhir, recalled for his first cap since December 2012, was squared up by Broad and fed a simple catch to Joe Root at gully.
Anderson upped the ante with a double-wicket maiden. Murali Vijay and Virat Kohli fell for nought to the same brilliant two-card trick, a full inswinger to line them up and a perfectly pitched outswinger to follow. Both obliged with the nick and captain Alastair Cook snaffled two catches at waist height.
In doing so the Anderson-Cook axis reached 24 dismissals, overtaking Bob Willis and Sir Ian Botham as England's most productive bowler-fielder combination.
Cheteshwar Pujara became the third member of India's top four to leave without score, edging Broad to third slip for a fourth wicket in 13 deliveries. With Dhoni and Rahane each beaten on the outside edge early in their innings, it was briefly hard to see how India would reach 50.
But gradually, the siege began to lift as Dhoni took advantage of attacking fields to get his side going.
He and Rahane almost reached lunch but the latter let his concentration slip in the penultimate over, flashing Chris Jordan to second slip.
Jadeja was afforded a pantomime villain's welcome and hometown boy Anderson needed just three balls after the break to pin his rival lbw with a hooping inswinger.
The lively cameo between Ashwin and Dhoni offered some respite, but when Ashwin top-edged Broad to Sam Robson at mid-wicket for 40, the resistance was up.
Broad played executioner, bowling Bhuvneshwar Kumar middle stump shouldering, spearing Pankaj Singh's ragged defences and seeing Dhoni shovel a catch to fine leg.
England's openers began from a position of strength, but neither Cook nor Robson has enjoyed a vintage summer.
Robson was unconvincing even before he offered no stroke to a Kumar delivery that ducked in and clattered the stumps, leaving him with 128 runs in six innings against India. Cook was tighter on his way to 17, only to balloon Varun Aaron's short ball to fine leg.
At 36 for two England needed to stabilise, with Ballance and Bell obliging in style. The duo left anything dangerous but were ruthless with anything loose.
Ballance was out for 37 just before stumps, lbw to an angled Aaron delivery, but that only papered over a desperate day for the tourists.