You have to work from both command lines (guest and host), and any error can destroy all your data.
First, from the guest, you have to resize filesystem and partitions (possibly using gparted) to the final size of the disk (better play safe and have a good margin... in your case reduce to 80G or so).
Once done, you can use lvreduce to change the LV size . Remember to update the VM config file.
And finally, again from the guest, you can extend the partition (and the fs) to fill the new drive.
Quite a pain, right?
Well, another solution, not involving command line, is possible: create a new 100GB drive for the VM. mount it in the guest, copy the data from old disk, update the config and remove old disk. But it requires 100GB free on "some" accessible storage (local, NFS, SMB, iSCSI).