Since this question was first posted, Nielsen Norman Group published an article on the UX of applying discounts. Per their research:
Our study participants often had difficulty understanding what was
meant when a charge was listed in a line item and then later
subtracted in a separate line item. It was clearer to users if the
item was simply listed as free.
This statement was specifically for an item that was wholly free after the discount, but one might argue that listing several items and their corresponding discounts could become visually messy and complicated.
An alternative could be to show the updated total price for each discounted item, with some information on the promotion outside of the total amount column. By showing only positive amounts, it's easier for users to scan and estimate totals in their heads. You can also put the total savings somewhere on the screen before the final checkout button.