Atletico Madrid reached the Champions League semi-finals for the first time since 2016/17 after a 3-2 aggregate win over Barcelona.