The Wildcats (16-10, 6-9 Big Ten), winners of two in a row, won for only the second time in school history at Assembly Hall. They also swept the Hoosiers for the second time in three years.
Indiana (12-15, 3-11) was led by Verdell Jones with 18 points and Jordan Hulls with 14.
It wasn't easy for Northwestern, which built a 10-point halftime lead and then had to stave off Indiana's second-half rally.
The Hoosiers tied the score twice in the final 10 minutes, at 52 and again at 57. But Thompson broke the second tie with two free throws and Drew Crawford followed that with a 3 to make it 62-57 with 5:50 left.
Indiana spent the rest of the night playing catch-up but couldn't get closer than 67-64.