tl;dr
Two-way matching is the control that checks a vendor bill against its purchase order before payment goes out, comparing quantities and prices to catch overbilling, duplicate invoices, or unauthorized purchases.
Three-way matching adds a goods-receipt check to confirm what was ordered actually arrived.
Done manually, two-way matching is one of the more tedious jobs in accounts payable: pulling up the PO, comparing it line by line against the bill, and flagging anything that doesn't reconcile. Done as a routed workflow, it happens automatically on every bill, with only genuine mismatches reaching a person for a decision.
The control matters more as a company scales. The number of bills grows faster than the AP team does, and manual matching is exactly the kind of repetitive check that should run itself, with a human involved only when the numbers actually disagree.
See how this works in Light's Workflows.
