Captain Heather Knight took three wickets on her return from injury as the Three Lions defended 243 by bowling out the visitors for just 103 in Loughborough.
Alex Hartley also claimed three wickets with the ball to back up a batting display built off the back of Nat Sciver's fine innings of 70 and a score of 50 for opener Lauren Winfield.
The result could provide England with an important pyschological boost ahead of their opening World Cup match against India in Derby on 24 June.
Knight, who returned for her first game after five weeks out with a fractured metatarsal, won the toss and opted to bat against an India side that came into the fixture having won 17 of their previous 18 ODIs.
India started well with the ball and limited England to just 28 runs from the first 10 overs.
But after negotiating a patient start, Winfield and Tammy Beaumont progressed to 62 before Beaumont attempted a reverse-sweep against Ekta Bisht and succeeded only in feathering a catch behind.
Sarah Taylor joined Winfield at the crease and the opener reached her half-century before a mix-up saw her run out for 50. Knight came to the crease but was unable to build a substantial innings as she dragged on from Mansi Joshi for 11.
Taylor looked in fine touch as she reached 24 with little alarm before popping a return catch to Poonam Yadav. Georgia Elwiss arrived with the score at 119-4 and joined the in-form Scriver as the pair looked to manipulate the spinners in the middle overs.
Elwiss was bowled sweeping for 17 but Sciver was in no mood to let up, adding 50 with Danni Wyatt in a period of just five overs. Wyatt, who hit two massive sixes in an aggressive knock of 33 from just 22 balls, was stumped as she looked to push the run-rate and Katherine Brunt followed in the same manner. Beth Langston then provided admirable support for Sciver as she pushed on to 70 and took England up to 243 all out at the end of their innings.
India’s openers Poonam Raut and Smriti Mandhana took the attack to England and were going at six an over up until the fall of the first wicket, Mandhana trying to hit Langston over the top but only finding Hartley at mid-on who took a smart catch.
That allowed England to reduce India’s run-rate and seven overs later, with the score 46-1 in the 13th over, they struck twice in quick succession. Firstly, Raut fell to a fine catch by a back-peddling Wyatt to give Sciver her first wicket and then Hartley spun one past Mayan Joshi’s forward prod to leave the score at 47-3.
Hartley and Dani Hazell then continued to tighten the screw, with India’s captain Mithali Raj and Harmanpreet Kaur trying to form a partnership. The breakthrough came via another Hartley catch – this one even more impressive than her first. Raj advanced down the wicket and made a solid connection in striking the ball straight back down the ground, but Hartley did well to snaffle the chance. As before, England’s wickets came in twos and Hazell trapped Kaur in front to leave India 77-6.
There was still time for England’s returning skipper Knight to grab three wickets – two LBWs and one clean-bowled – as the pitch got progressively slower and lower. Those wickets plus a sharp run-out courtesy of Nat Sciver were enough to see India dismissed for 103.