HTML tables are defined with <table> tags. Rows are defined with <tr> tags, headings with <th> tags, and cells/data with <td> tags. CSS can be used to style tables by adding borders with the border property, left-aligning headings with text-align, and adding padding or border spacing between cells. Attributes like colspan and rowspan allow cells to span multiple columns or rows.