Steven Finn took a five-wicket haul to help restrict India to 153 with 10 overs remaining in their Tri-Series match in Brisbane.
Both sides headed into this match on the back of defeats, but it was England who took control in the early stages when James Anderson got off the mark by dismissing Shikhar Dhawan for a single run.
Ajinkya Rahane and Ambati Rayudu steadied the attack for India by reaching a combined 56 runs before Rahane was caught out by James Taylor off Finn's delivery.
Finn struck again by restricting Virat Kohli to just four runs, while Moeen Ali nabbed a wicket of his own by taking out Suresh Raina, who mustered just one run.
Finn continued his assault with the dismissal of Rayudu (23) and was on a hat-trick after taking out MS Dhoni (34) and Axar Patel for a duck in successive balls.
India failed to recover as Bhuvneshwar Kumar went for five, Stuart Binny for 44 and Mohammed Shami for one, all of whom were dismissed by Anderson, who took four wickets overall.