Salah was denied early on by Fulham's Sergio Rico but the visitors created two good opportunities to take the lead.
Ryan Sessegnon dragged the ball wide when played through while Andre Schurrle's shot was saved by Alisson.
Salah broke the deadlock on 41 minutes when he finished off a counter-attack 14 seconds after Aleksandar Mitrovic had a goal ruled out for offside.
Shaqiri sealed the three points eight minutes after the break, finishing at the back post from Andrew Robertson's cross.
The win keeps Liverpool second on 30 points, two behind Manchester City.
Fulham suffered their sixth straight league defeat and are bottom, three points from safety.
Liverpool: 24 Nov v Watford (A)
Fulham: 24 Nov v Southampton (H)