Shai Hope fell early after West Indies were asked to bat.
Washington Sundar struck twice to reduce West Indies to 45 for 3.
Yuzvendra Chahal got his 100th ODI wicket with the dismissal of Nicholas Pooran and then dismissed Kieron Pollard for a first-ball duck to leave West Indies hurting at 71 for 5.
Jason Holder struck 57 to help West Indies push their score past 160.
Chahal picked four while Washington got three as West Indies folded for 176.
Rohit Sharma struck 60 off 51 to give India a solid start.
Joseph dismissed Rohit and Kohli in the same over as India went from being 84 for no loss to 93 for 2.
Suryakumar Yadav and debutant Deepak Hooda made unbeaten 62 to help India seal a six-wicket win with 22 overs to spare.